Evals Context
zgsm-ai/costrict
Provides context about the CoStrict evals system structure in this monorepo.
Analyzing GitHub Copilot session log files to extract token usage, model information, and interaction data.
$ npx skills add rajbos/ai-engineering-fluency --skill copilot-log-analysis -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install rajbos/ai-engineering-fluency copilot-log-analysis --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/copilot-log-analysis .claude/skills/copilot-log-analysis && 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 "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .claude/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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/copilot-log-analysisType 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 copilot-log-analysis -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install rajbos/ai-engineering-fluency copilot-log-analysis --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/copilot-log-analysis .agents/skills/copilot-log-analysis && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .agents/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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 copilot-log-analysis -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install rajbos/ai-engineering-fluency copilot-log-analysis --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/copilot-log-analysis .cursor/skills/copilot-log-analysis && 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 "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .cursor/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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/copilot-log-analysis--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 copilot-log-analysis -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install rajbos/ai-engineering-fluency copilot-log-analysis --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/copilot-log-analysis .gemini/skills/copilot-log-analysis && 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 "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .gemini/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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 copilot-log-analysisInstalls 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 copilot-log-analysis -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/copilot-log-analysis .github/skills/copilot-log-analysis && 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 "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .github/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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 copilot-log-analysis -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 copilot-log-analysis --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/copilot-log-analysis .opencode/skills/copilot-log-analysis && 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 "copilot-log-analysis" agent skill from https://github.com/rajbos/ai-engineering-fluency/tree/main/.claude/skills/copilot-log-analysis into .opencode/skills/copilot-log-analysis/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "copilot-log-analysis", 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.
copilot-log-analysisAnalyzing GitHub Copilot session log files to extract token usage, model information, and interaction data.
Copilot Log Analysis is an agent skill from rajbos/ai-engineering-fluency. Analyzing GitHub Copilot session log files to extract token usage, model information, and interaction data. Use when working with session files, understanding the extension's log analysis methods, or debugging token tracking issues.
Its SKILL.md is about 5.5k 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 AI & LLM Engineering, covering LLM observability. 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.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 64b51e6. 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:
nodepwshFrom 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.
Copilot Log Analysis loads about 5.5k tokens when it runs. Until then it costs about 63 tokens; SKILL.md has 1,684 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 64b51e6, republished under its MIT licence (© rajbos). 1,684 words, ~5,486 tokens.
.claude/skills/copilot-log-analysis/SKILL.md (or your agent's skills folder).This skill documents the methods and approaches used by the AI Engineering Fluency extension to analyze Copilot session log files. These files contain chat sessions, token usage, and model information.
The extension analyzes two types of log files:
.json files: Standard VS Code Copilot Chat session files.jsonl files: Copilot CLI/Agent mode sessions, JetBrains IDE Copilot Chat sessions, Claude Code sessions, Gemini CLI sessions, Antigravity sessions, and other ecosystem adapters (one JSON event per line)getCopilotSessionFiles()Location: src/extension.ts (via SessionDiscovery)
Helper Methods: getVSCodeUserPaths(), scanDirectoryForSessionFiles()
This method discovers session files across all VS Code variants and locations:
Supported VS Code Variants:
File Locations Checked:
{VSCode User Path}/workspaceStorage/{workspace-id}/chatSessions/*.json{VSCode User Path}/globalStorage/emptyWindowChatSessions/*.json{VSCode User Path}/globalStorage/github.copilot-chat/**/*.json~/.copilot/session-state/*.jsonl~/.copilot/jb/{conversationId}/partition-{n}.jsonl~/.gemini/tmp/{project}/chats/session-*.jsonl~/.gemini/antigravity/brain/{session-uuid}/.system_generated/logs/transcript.jsonlPlatform-Specific Paths:
%APPDATA%/{Variant}/User~/Library/Application Support/{Variant}/User~/.config/{Variant}/User (respects XDG_CONFIG_HOME)~/.vscode-server/data/User, ~/.vscode-server-insiders/data/UsergetVSCodeUserPaths()Location: src/extension.ts
Returns all possible VS Code user data paths for different variants and platforms.
scanDirectoryForSessionFiles()Location: src/extension.ts
Recursively scans directories for .json and .jsonl session files.
parseSessionFileContent()Location: src/sessionParser.ts
Purpose: Parses session files and returns tokens, interactions, model usage, and editor type-safe model IDs.
How it works:
.json (Copilot Chat) and .jsonl (CLI/agent) formats, including delta-based JSONL streams.estimateTokensFromText() (in src/extension.ts) for character-to-token estimation.getModelFromRequest()Location: src/extension.ts
request.result.metadata.modelIdrequest.result.details for known model patternsgpt-4getModelDisplayName() adds variants such as GPT-5 family, Claude Haiku, Claude Opus, Gemini 3 Flash, Grok, and Raptor when present in metadata.modelId.getEditorTypeFromPath()Location: src/extension.ts
Purpose: Determines which VS Code variant created the session file.
Detection patterns:
/.copilot/jb/ → 'JetBrains' (must be checked BEFORE the Copilot CLI rule below since both live under ~/.copilot/)/.copilot/session-state/ → 'Copilot CLI'/code - insiders/ → 'VS Code Insiders'/code - exploration/ → 'VS Code Exploration'/vscodium/ → 'VSCodium'/cursor/ → 'Cursor'.vscode-server-insiders/ → 'VS Code Server (Insiders)'.vscode-server/ → 'VS Code Server'/code/ → 'VS Code''Unknown'estimateTokensFromText()Location: src/extension.ts
Approach: Uses model-specific character-to-token ratios
src/tokenEstimators.jsonMath.ceil(text.length * tokensPerChar)Model matching:
gpt-4o matches key gpt-4oSessionFileCacheLocation: src/extension.ts
Stores pre-calculated tokens, interactions, model usage, and file mtime to avoid re-processing unchanged files.
isCacheValid(): Validates cached entry by mtimegetCachedSessionData(): Retrieves cached datasetCachedSessionData(): Stores data with FIFO eviction after 1000 filesclearExpiredCache(): Drops cache entries for missing filesgetSessionFileDataCached(): Reads session content, parses via parseSessionFileContent(), and caches resultsDirectory: docs/logFilesSchema/
Key files:
session-file-schema.json: Manual curated schema with descriptionssession-file-schema-analysis.json: Auto-generated field discovery (generated by PowerShell script)README.md: Complete guide for schema analysisSCHEMA-ANALYSIS.md: Quick reference guideVSCODE-VARIANTS.md: VS Code variant detection documentationNote: The analysis JSON file is auto-generated and may not exist in fresh clones. It is created by running the schema analysis script documented below.
See the Executable Scripts section for available utilities:
get-session-files.js - Quick session file discoverydiagnose-session-files.js - Detailed diagnosticsanalyze-session-schema.ps1 - PowerShell schema analysisPrimary fields used by extension:
{
"requests": [
{
"message": {
"parts": [
{ "text": "user message content" }
]
},
"response": [
{ "value": "assistant response content" }
],
"result": {
"metadata": {
"modelId": "gpt-4o"
},
"details": "Used GPT-4o model"
}
}
]
}Key paths:
requests[].message.parts[].textrequests[].response[].valuerequests[].result.metadata.modelIdrequests[].result.detailsrequests.lengthEvent types:
{"type": "user.message", "data": {"content": "..."}, "model": "gpt-4o"}
{"type": "assistant.message", "data": {"content": "..."}}
{"type": "tool.execution_start", "data": {"toolCallId": "...", "toolName": "...", "arguments": {}}}
{"type": "tool.execution_complete", "data": {"toolCallId": "...", "success": true, "result": {"content": "...", "detailedContent": "..."}}}
{"type": "session.shutdown", "data": {"modelMetrics": {"claude-opus-4.6": {"usage": {"inputTokens": 0, "outputTokens": 0, "cacheReadTokens": 0, "cacheWriteTokens": 0}}}}}Key fields:
typedata.content (when type: 'user.message')data.content (when type: 'assistant.message')data.result.content or data.result.detailedContent (when type: 'tool.execution_complete')data.toolName (when type: 'tool.execution_start')data.modelMetrics[model].usage (when type: 'session.shutdown') — always prefer these over estimates when availablemodel (optional, defaults to gpt-4o)Location: ~/.copilot/jb/{conversationId}/partition-{n}.jsonl — one UUID-named directory per conversation, one or more partition files per conversation. Empty partition files are skipped.
Full schema documentation: docs/logFilesSchema/jetbrains-session-schema.json
Common envelope — every line is { type, data, id, timestamp, parentId }.
Event types:
{"type":"partition.created","data":{"conversationId":"...","partitionId":1,"source":"panel","createdAt":1777552130660}}
{"type":"user.message","data":{"content":"...","turnId":"..."}}
{"type":"user.message_rendered","data":{"turnId":"...","renderedMessage":"<context>...</context><reminderInstructions>You are an agent...</reminderInstructions><userRequest>...</userRequest>"}}
{"type":"assistant.turn_start","data":{"turnId":"..."}}
{"type":"assistant.message","data":{"text":"...","thinking":{"text":"..."},"iterationNumber":1,"messageId":"..."}}
{"type":"tool.execution_start","data":{"toolCallId":"toolu_bdrk_...","toolName":"read_file","arguments":{...}}}
{"type":"tool.execution_complete","data":{"toolCallId":"...","success":true,"result":{"result":[{"type":"text","value":"..."}]}}}
{"type":"assistant.turn_end","data":{"turnId":"...","status":"success"}}Key extraction rules (also implemented by parseJetBrainsPartition in src/jetbrains.ts):
user.message eventsuser.message_rendered.data.renderedMessage (falls back to user.message.data.content)assistant.message.data.textassistant.message.data.thinking.texttool.execution_start event ⇒ agent, otherwise ask (no edit/plan/customAgent)toolCallId prefix (toolu_* ⇒ Anthropic Claude, call_* ⇒ OpenAI), otherwise unknownuser.message and the last assistant.turn_end (or assistant.message) eventWhat: Google's closed-source successor to Gemini CLI, released May 2026. An Electron-based desktop IDE backed by cloudcode-pa.googleapis.com.
Location: %USERPROFILE%\.gemini\antigravity\brain\{session-uuid}\.system_generated\logs\transcript.jsonl
Full schema documentation: docs/logFilesSchema/antigravity-session-format.md
Entry types (each line is one entry):
{"step_index":0,"source":"USER_EXPLICIT","type":"USER_INPUT","status":"DONE","created_at":"2026-05-22T21:48:22Z","content":"<USER_REQUEST>\nuser message here\n</USER_REQUEST>\n<ADDITIONAL_METADATA>...</ADDITIONAL_METADATA>"}
{"step_index":1,"source":"SYSTEM","type":"CONVERSATION_HISTORY","status":"DONE","created_at":"2026-05-22T21:48:22Z"}
{"step_index":2,"source":"MODEL","type":"PLANNER_RESPONSE","status":"DONE","created_at":"2026-05-22T21:48:22Z","tool_calls":[{"name":"search_web","args":{"query":"..."}}]}
{"step_index":3,"source":"MODEL","type":"SEARCH_WEB","status":"DONE","created_at":"2026-05-22T21:48:23Z","content":"Search result text..."}
{"step_index":11,"source":"MODEL","type":"PLANNER_RESPONSE","status":"DONE","created_at":"2026-05-22T21:48:44Z","content":"Final answer text...","thinking":"Chain of thought..."}Key extraction rules (implemented by AntigravityDataAccess in src/antigravity.ts):
USER_INPUT entries (source: "USER_EXPLICIT")content of first USER_INPUT, strip <USER_REQUEST> XML wrapper<USER_REQUEST>...</USER_REQUEST> wrapper; discard everything after </USER_REQUEST> (metadata blocks)content field of the last PLANNER_RESPONSE with non-empty contentthinking field of any PLANNER_RESPONSEtool_calls[].name on PLANNER_RESPONSE entries (e.g. search_web)content of SEARCH_WEB entries (and future tool result entry types)brain/created_at of first and last entriesLocation: src/modelPricing.json
Contains per-million-token costs for input and output:
{
"pricing": {
"gpt-4o": {
"inputCostPerMillion": 1.75,
"outputCostPerMillion": 14.0,
"category": "gpt-4"
}
}
}calculateEstimatedCost()Location: src/extension.ts
Formula:
(inputTokens / 1_000_000) * inputCostPerMillion(outputTokens / 1_000_000) * outputCostPerMilliongpt-4o-mini pricing for unknown modelsThis skill includes three executable scripts that can be run directly to analyze session files. Always run scripts with their appropriate command first before attempting to read or modify them.
Purpose: Quickly discover all Copilot session files on your system with summary statistics.
Location: .github/skills/copilot-log-analysis/get-session-files.js
When to use:
Usage:
# Basic output with summary statistics
node .github/skills/copilot-log-analysis/get-session-files.js
# Show all file paths (verbose mode)
node .github/skills/copilot-log-analysis/get-session-files.js --verbose
# JSON output for programmatic use
node .github/skills/copilot-log-analysis/get-session-files.js --jsonWhat it does:
Example output:
Platform: win32
Home directory: C:\Users\YourName
VS Code installations found:
C:\Users\YourName\AppData\Roaming\Code\User
C:\Users\YourName\AppData\Roaming\Code - Insiders\User
Total session files found: 274
Session files by location:
Workspace Storage: 192 files
Global Storage (Legacy): 67 files
Copilot Chat Extension: 6 files
Copilot CLI: 9 files
Session files by editor:
VS Code: 265 files
VS Code Insiders: 9 filesPurpose: Comprehensive diagnostic tool that analyzes session file structure, content, and provides debugging information.
Location: .github/skills/copilot-log-analysis/diagnose-session-files.js
When to use:
Usage:
# Basic diagnostic report
node .github/skills/copilot-log-analysis/diagnose-session-files.js
# Verbose output with all file paths and details
node .github/skills/copilot-log-analysis/diagnose-session-files.js --verboseWhat it does:
Purpose: PowerShell script that analyzes session files to discover field structures and generate schema documentation.
Location: .github/skills/copilot-log-analysis/analyze-session-schema.ps1
When to use:
Usage:
# Analyze session files and generate schema
pwsh .github/skills/copilot-log-analysis/analyze-session-schema.ps1
# Specify custom output directory
pwsh .github/skills/copilot-log-analysis/analyze-session-schema.ps1 -OutputPath ./outputWhat it does:
docs/logFilesSchema/session-file-schema-analysis.jsonNote: This script generates the session-file-schema-analysis.json file referenced in the Schema Documentation section below.
const sessionFiles = await getCopilotSessionFiles();
console.log(`Found ${sessionFiles.length} session files`);const filePath = '/path/to/session.json';
const stats = fs.statSync(filePath);
const mtime = stats.mtime.getTime();
const content = await fs.promises.readFile(filePath, 'utf8');
const estimate = (text: string, model = 'gpt-4o') => Math.ceil(text.length * 0.25);
const detectModel = (req: any) => req?.result?.metadata?.modelId ?? 'gpt-4o';
const parsed = parseSessionFileContent(filePath, content, estimate, detectModel);
const editorType = getEditorTypeFromPath(filePath);
console.log(`Tokens: ${parsed.tokens}`);
console.log(`Interactions: ${parsed.interactions}`);
console.log(`Editor: ${editorType}`);
console.log(`Models:`, parsed.modelUsage);const now = new Date();
const todayStart = new Date(now.getFullYear(), now.getMonth(), now.getDate());
const sessionFiles = await getCopilotSessionFiles();
const estimate = (text: string, model = 'gpt-4o') => Math.ceil(text.length * 0.25);
const detectModel = (req: any) => req?.result?.metadata?.modelId ?? 'gpt-4o';
let todayTokens = 0;
for (const file of sessionFiles) {
const stats = fs.statSync(file);
if (stats.mtime >= todayStart) {
const content = await fs.promises.readFile(file, 'utf8');
const parsed = parseSessionFileContent(file, content, estimate, detectModel);
todayTokens += parsed.tokens;
}
}Location: Throughout src/extension.ts
Methods available:
log(message): Info-level loggingwarn(message): Warning-level loggingerror(message, error?): Error-level loggingAll logs go to "AI Engineering Fluency" output channel.
Method: generateDiagnosticReport()
Location: src/extension.ts
Creates comprehensive report including:
Access via:
When working with log analysis, refer to these files:
Main implementation: src/extension.ts
Configuration files:
src/tokenEstimators.json - Token estimation ratiossrc/modelPricing.json - Model pricing datasrc/README.md - Data files documentationSchema documentation: docs/logFilesSchema/
Skill resources: .github/skills/copilot-log-analysis/
get-session-files.js - Quick session file discovery scriptdiagnose-session-files.js - Detailed diagnostic toolanalyze-session-schema.ps1 - PowerShell schema analysis scriptSKILL.md - This documentationProject instructions: .github/copilot-instructions.md
Solution:
node .github/skills/copilot-log-analysis/diagnose-session-files.jsSolution:
tokenEstimators.json has correct ratios for modelsSolution:
getModelFromRequest() detection logicrequest.result.details string patternsmodelPricing.json with new model© 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/copilot-log-analysis of rajbos/ai-engineering-fluency.
Open the folder on GitHubat commit 64b51e6
Copilot Log Analysis 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 |
|---|---|---|---|---|---|---|
| Copilot Log Analysis this skillrajbos/ai-engineering-fluency | 116 | — | ~5.5k | Automated safety check: Pass | MIT | |
| Evals Contextzgsm-ai/costrict | 4.4k | 1 repos | ~1.9k | Automated safety check: Pass | Apache-2.0 | |
| Dev BumpNetis/heron | 102 | — | ~983 | Automated safety check: Pass | Apache-2.0 | |
| Opik Python SDK Patternscomet-ml/opik | 22k | — | ~684 | Automated safety check: Pass | Apache-2.0 | |
| BenchAlphaLab-USTC/OhMyCode | 131 | — | ~941 | Automated safety check: Pass | MIT | |
| Datadog Query Recipeslangfuse/langfuse | 36k | — | ~824 | Automated safety check: Pass | Custom licence |
zgsm-ai/costrict
Provides context about the CoStrict evals system structure in this monorepo.
Netis/heron
Bump Heron version via the VERSION-file SSOT. An agent skill from Netis/heron.
comet-ml/opik
Developer notes for working inside the Opik Python SDK: layered design, async versus blocking calls, integration styles, batching and dependency rules.
AlphaLab-USTC/OhMyCode
Run OhMyCode benchmarks — score any provider/model with token tracking.
langfuse/langfuse
Research Langfuse production telemetry with reusable Datadog queries.
langfuse/langfuse
Answer "what should I do today" for a Langfuse maintainer, from the tracker rather than from memory: which projects you lead, which owe an update before the Monday engineering weekly, what shipped…
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
Load and display the last 10 cache entries as raw JSON output.
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.
Works with
Categories
Analyzing GitHub Copilot session log files to extract token usage, model information, and interaction data. Copilot Log Analysis is an agent skill from rajbos/ai-engineering-fluency. Analyzing GitHub Copilot session log files to extract token usage, model information, and interaction data.
Copilot Log Analysis fits situations like: working with session files; understanding the extensions log analysis methods; debugging token tracking issues.
Run `npx skills add rajbos/ai-engineering-fluency --skill copilot-log-analysis -a claude-code`. Or copy the skill folder (.claude/skills/copilot-log-analysis in rajbos/ai-engineering-fluency) into .claude/skills/copilot-log-analysis in your project. Claude Code loads it when a task matches its description.
Run `npx skills add rajbos/ai-engineering-fluency --skill copilot-log-analysis -a codex`. Or copy the skill folder (.claude/skills/copilot-log-analysis in rajbos/ai-engineering-fluency) into .agents/skills/copilot-log-analysis 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 copilot-log-analysis -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/copilot-log-analysis, .gemini/skills/copilot-log-analysis, .github/skills/copilot-log-analysis and .opencode/skills/copilot-log-analysis in your project.
Going by SKILL.md and its folder, Copilot Log Analysis needs the command-line tools its instructions call (node and pwsh).
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.
Copilot Log Analysis is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 5.5k tokens (SKILL.md is roughly 22k 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 Copilot Log Analysis: Evals Context (zgsm-ai/costrict, 4.4k stars), Dev Bump (Netis/heron, 102 stars), Opik Python SDK Patterns (comet-ml/opik, 22k stars) and Bench (AlphaLab-USTC/OhMyCode, 131 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 116 GitHub stars. The repository holds 21 skills in this directory. The repository was last updated on October 8, 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.