Copilot Session Failure Analysis
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
Set up testing and debug common issues in Agent Kernel projects.
$ npx skills add yaalalabs/agent-kernel --skill ak-test -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install yaalalabs/agent-kernel ak-test --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/yaalalabs/agent-kernel.git skills-src && mkdir -p .claude/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .claude/skills/ak-test && 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 "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .claude/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-testType 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 yaalalabs/agent-kernel --skill ak-test -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install yaalalabs/agent-kernel ak-test --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .agents/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .agents/skills/ak-test && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .agents/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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 yaalalabs/agent-kernel --skill ak-test -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install yaalalabs/agent-kernel ak-test --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .cursor/skills/ak-test && 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 "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .cursor/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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/yaalalabs/agent-kernel.git --path ak-py/src/agentkernel/skills/ak-test--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 yaalalabs/agent-kernel --skill ak-test -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install yaalalabs/agent-kernel ak-test --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .gemini/skills/ak-test && 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 "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .gemini/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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 yaalalabs/agent-kernel ak-testInstalls 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 yaalalabs/agent-kernel --skill ak-test -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .github/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .github/skills/ak-test && 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 "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .github/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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 yaalalabs/agent-kernel --skill ak-test -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install yaalalabs/agent-kernel ak-test --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/yaalalabs/agent-kernel.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/ak-py/src/agentkernel/skills/ak-test .opencode/skills/ak-test && 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 "ak-test" agent skill from https://github.com/yaalalabs/agent-kernel/tree/develop/ak-py/src/agentkernel/skills/ak-test into .opencode/skills/ak-test/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ak-test", 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.
ak-testSet up testing and debug common issues in Agent Kernel projects.
Ak Test is an agent skill from yaalalabs/agent-kernel. Set up testing and debug common issues in Agent Kernel projects. This skill guides you through configuring the built-in test framework, writing agent tests, choosing test modes (score, llm, fallback), and troubleshooting common errors.
Its SKILL.md is about 3.9k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files (for example `evals/evals.json`).
It sits in Agent Workflows, covering Agent evaluation and testing. The repository describes itself as: The Operating System for Scalable Enterprise AI Agents - Run, orchestrate, and deploy Compliant Enterprise AI Agents at scale across frameworks, without lock-in, rewrites or… The licence is Apache-2.0.
5 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit 97fa8d9. 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:
pipuvterraformcurlredis-cliawsazngrokFrom the folder's file list and the shell code blocks in SKILL.md.
Hosts in commands or code, which the agent is likely to contact:
comet.comAlso links to:
docs.typesafe.aiFrom URLs in SKILL.md, links to its own repository left out.
Names these keys or tokens, usually read from environment variables:
TYPESAFE_API_KEYFrom names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Ak Test loads about 3.9k tokens when it runs. Until then it costs about 61 tokens; SKILL.md has 1,211 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 yaalalabs/agent-kernel at commit 97fa8d9, republished under its Apache-2.0 licence (© yaalalabs). 1,211 words, ~3,922 tokens.
.claude/skills/ak-test/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.Use this skill to set up testing for your Agent Kernel project or debug issues.
Update pyproject.toml:
[dependency-groups]
dev = [
"agentkernel[test]>=0.9.5",
"black>=23.0.0",
"isort>=5.0.0",
"mypy>=1.0.0",
]Run uv sync to install test dependencies.
Create test-config.yaml in the directory you run tests from — it is a separate, un-nested file
(no top-level test: key), loaded only when the test harness runs. A test: section left over in
config.yaml is ignored:
mode: score # Options: score | llm | fallback (default: fallback)| Mode | How it Works | Best For |
|---|---|---|
| score | Deterministic string-match scoring (built-in deepeval: Scorer.quasi_exact_match_score; built-in opik: graded LevenshteinRatio; built-in jev has no score mode) | Deterministic responses, exact answers |
| llm | LLM evaluates if response is semantically correct (deepeval and opik: GEval; jev: a hosted yes/no Noul question) | Open-ended responses, creative agents |
| fallback | Tries score first, falls back to llm if score fails | General-purpose testing |
For llm mode, configure the llm model:
mode: llm
llm:
model: gpt-4o-mini
provider: openaiEvaluator backend: evaluator selects the scoring backend used by both score and llm
modes — deepeval (the default, pip install "agentkernel[test]"), opik (pip install "agentkernel[opik]", Opik by Comet, runs entirely locally) and jev
(pip install "agentkernel[jev]", hosted TypeSafe JEV judge: mode: llm only, needs
TYPESAFE_API_KEY, sends the comparison text to api.typesafe.ai) are the three built-ins. Set it to a dotted path (e.g. my_evaluator.MyEvaluator) to bring your own
AKEvaluator subclass instead:
evaluator: opik # switch to another built-in (jev also needs mode: llm)mode: fallback
evaluator: my_evaluator.MyEvaluator # resolves against my_evaluator.py next to your test fileUse this when none of the built-in evaluators' scoring fits your agent — e.g. deepeval's binary
exact-match score mode is too strict and opik's graded LevenshteinRatio still doesn't capture
what you need, or you want a judge call that doesn't depend on DeepEval/Opik/JEV at all, or a
domain-specific rubric. No AK core change is required: any dotted path to an AKEvaluator subclass
works as the evaluator: value, resolved the same way sandbox providers and session stores resolve
their own bring-your-own backends.
Create a module next to your test file (e.g. my_evaluator.py) and subclass AKEvaluator,
importing the interface from agentkernel.test.core.evaluator:
from agentkernel.test.core.evaluator import (
AKEvaluationCase,
AKEvaluationError,
AKEvaluationResult,
AKEvaluator,
AKMissingInput,
)
class MyEvaluator(AKEvaluator):
def evaluate_by_score(self, case: AKEvaluationCase) -> AKEvaluationResult:
if not case.expected:
raise AKMissingInput("evaluate_by_score requires AKEvaluationCase.expected")
score = ... # your deterministic, offline scoring logic
return AKEvaluationResult(
metric="my_metric",
evaluator="my_evaluator",
score=score,
passed=score >= case.threshold,
)
def evaluate_by_llm(self, case: AKEvaluationCase) -> AKEvaluationResult:
if not case.expected:
raise AKMissingInput("evaluate_by_llm requires AKEvaluationCase.expected")
try:
score = ... # your judge call (any LLM client — litellm, an SDK, a hosted judge)
except Exception as exc:
raise AKEvaluationError(f"judge call failed: {exc}") from exc
return AKEvaluationResult(
metric="my_llm_metric",
evaluator="my_evaluator",
score=score,
passed=score >= case.threshold,
)Both methods are synchronous and must set result.passed themselves — Test.compare decides
whether a failing passed is fatal (raises AssertionError) or, with return_metrics=True,
returned to the caller; it never overrides passed.
Follow the same error contract every evaluator (built-in or custom) must honor: raise
AKMissingInput if a required AKEvaluationCase field (usually expected) is missing; raise
AKEvaluationError if your backend fails (bad credentials, transport error, unparseable judge
output) — never return a 0.0 to stand in for a failure, since 0.0 must only ever mean
"scored zero". If your evaluator only supports one of the two modes (e.g. judge-only, no offline
scoring), raise AKMetricNotSupported from the other and set mode to the supported one
(e.g. mode: llm) — fallback does not catch it, so the error propagates and the test fails.
Point test-config.yaml at it by dotted path — module_name.ClassName, resolved against the
module's location (next to your test file, since that's what's on sys.path under pytest's
default import mode):
evaluator: my_evaluator.MyEvaluatorNo AK extra beyond agentkernel[test] is needed unless your evaluator's own dependencies
(an LLM client, a scoring library) require one — each built-in's import (deepeval, opik, jev)
lives entirely inside its own resolution branch, so a custom evaluator never pulls any in.
See examples/cli/custom-evaluator/ for a complete worked example — a stdlib-only Jaccard
token-overlap scorer plus a raw litellm judge call, no DeepEval dependency at all — and
docs/docs/testing/cli-testing.md
for the reference documentation.
For agents running via CLI (demo.py):
import pytest
import pytest_asyncio
from agentkernel.test import Test
pytestmark = pytest.mark.asyncio(loop_scope="session")
@pytest_asyncio.fixture(scope="session", loop_scope="session")
async def test_client():
test = Test("demo.py") # Path to your agent definition file
await test.start()
try:
yield test
finally:
await test.stop()
@pytest.mark.order(1)
async def test_greeting(test_client):
await test_client.send("Hello!")
await test_client.expect(["Hello", "Hi", "Greetings"])
@pytest.mark.order(2)
async def test_specific_question(test_client):
await test_client.send("What is the capital of France?")
await test_client.expect(["Paris"])
@pytest.mark.order(3)
async def test_follow_up(test_client):
# Follow-up questions work because session state is maintained
await test_client.send("What is its population?")
await test_client.expect(["2 million", "2.1 million", "approximately 2 million"])Key patterns:
@pytest.mark.order(n) for sequential tests where context mattersscope="session" fixtures so the agent stays running across testsexpect() takes a list of acceptable answer patternsreturn_metrics=True to expect() (or Test.compare()) to get back an
AKEvaluationResult (score, evaluator, metric, reason) instead of raising AssertionError on a
mismatch — useful for asserting on the score itself rather than just pass/failFor agents running via REST API:
import asyncio
import os
import subprocess
import sys
import uuid
import httpx
import pytest
import pytest_asyncio
from agentkernel.test import Test
pytestmark = pytest.mark.asyncio(loop_scope="session")
class APITestClient:
def __init__(self, url: str):
self.url = url
self.session_id = str(uuid.uuid4())
async def send(self, prompt: str, agent: str = "triage") -> str:
payload = {
"prompt": prompt,
"session_id": self.session_id,
"agent": agent,
}
async with httpx.AsyncClient(timeout=30.0) as client:
resp = await client.post(f"{self.url}/run", json=payload)
resp.raise_for_status()
return resp.json().get("result", "")
@pytest_asyncio.fixture(scope="session", loop_scope="session")
async def http_client():
# Option A: Test against running server
endpoint = os.getenv("AK_TEST_ENDPOINT", "http://localhost:8000")
# Option B: Start server in fixture
# proc = subprocess.Popen(["python3", "app.py"], stdout=sys.stdout, stderr=sys.stderr)
# await asyncio.sleep(5)
yield APITestClient(endpoint)
# proc.terminate(); proc.wait() # if using Option B
@pytest.mark.order(1)
async def test_basic_question(http_client):
response = await http_client.send("What is 2+2?")
Test.compare(response, ["4", "The answer is 4"])
@pytest.mark.order(2)
async def test_agent_routing(http_client):
response = await http_client.send("Tell me about World War 2")
Test.compare(response, ["World War II", "World War 2", "WWII"])uv run pytest # All tests
uv run pytest demo_test.py # Specific file
uv run pytest -k "test_greeting" # By name pattern
uv run pytest -x # Stop on first failure
uv run pytest -v # Verbose output
uv run pytest --tb=long # Full tracebacksSymptom: CLI shows "No agents available. Please load an agent module using !load."
Cause: The Module constructor was not called, so no agents are registered with Runtime.
Fix: Ensure your agent file calls the Module constructor:
# This line registers agents with the global Runtime
OpenAIModule([triage_agent, math_agent])Symptom: Agent doesn't remember context from previous messages.
Causes & Fixes:
session_id across requests.Check session config:
session:
type: redis
redis:
url: "redis://localhost:6379"
prefix: "ak:myproject:"Symptom: RuntimeError: ToolContext is not set inside a tool function.
Cause: The tool is being called outside of the agent execution context.
Fix: Ensure tool functions are bound via the framework's ToolBuilder and called within agent execution. Don't call tool functions directly outside of Runtime.run().
# Correct: bound via ToolBuilder
tools = OpenAIToolBuilder.bind([my_tool])
agent = Agent(name="test", tools=tools, instructions="...")
# Inside tool function:
def my_tool(query: str) -> str:
context = ToolContext.get() # Works during agent execution
session = context.session
return "result"Symptom: Every request returns a guardrail violation message.
Fixes:
config_path points to a valid JSON filemodel field is correctenabled: false in configSymptom: ModuleNotFoundError: No module named 'agents' (or crewai, langgraph, etc.)
Fix: Install the correct extras:
pip install "agentkernel[openai]" # For OpenAI Agents SDK
pip install "agentkernel[crewai]" # For CrewAI
pip install "agentkernel[langgraph]" # For LangGraph
pip install "agentkernel[adk]" # For Google ADK
pip install "agentkernel[smolagents]" # For Smolagents
pip install "agentkernel[pydanticai]" # For Pydantic AI (add a provider, e.g. pydantic-ai-slim[openai])Or in pyproject.toml:
dependencies = ["agentkernel[openai,api]>=0.9.5"]Symptom: ConnectionError: Error connecting to Redis or similar.
Fixes:
redis-cli ping should return PONGredis://host:port formatSymptom: terraform apply errors out.
Common fixes:
terraform init firstaws sts get-caller-identity or az account showagentkernel versionterraform.tfvarsterraform state list and terraform state rm to clean upSymptom: Messages sent on Slack/WhatsApp/etc. don't reach the agent.
Fixes:
ngrok http 8000)/slack/events/whatsapp/webhook/telegram/webhookcurl http://localhost:8000/healthAdd to config.yaml:
logging:
ak:
level: DEBUG # Agent Kernel logger level (INFO, DEBUG, ERROR, WARNING, CRITICAL)
system:
level: DEBUG # System/root logger level (affects process-wide logging)Or set environment variables:
export AK_LOGGING__AK__LEVEL=DEBUG
# Optional: Enable system-wide debug logging
export AK_LOGGING__SYSTEM__LEVEL=DEBUGlogging.ak.level controls Agent Kernel's own logger verbositylogging.system.level controls the process-wide/root logger (use with caution as it affects all application logging)system sectionAll API-mode agents expose a health endpoint:
curl http://localhost:8000/health
# {"status": "ok"}Use this to verify your server is running and accessible.
Your tests are set up and passing. Here's what you might do next:
ak-build skill to iterate on your project — add new capabilities, then come back here to add tests for them.ak-cloud-deploy skill to deploy your tested agent to AWS or Azure.ak-add-capabilities skill to add input/output guardrails, tracing, or session persistence.ak-add-integration skill to make your tested agent available on Slack, WhatsApp, or other channels.© yaalalabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 1 other file in ak-py/src/agentkernel/skills/ak-test of yaalalabs/agent-kernel.
Open the folder on GitHubat commit 97fa8d9
Ak Test 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 |
|---|---|---|---|---|---|---|
| Ak Test this skillyaalalabs/agent-kernel | 192 | — | ~3.9k | Automated safety check: Pass | Apache-2.0 | |
| Copilot Session Failure Analysisdotnet/maui | 23k | — | ~3.4k | Automated safety check: Pass | MIT | |
| Autocontext for Hermesgreyhaven-ai/autocontext | 1.3k | — | ~2.5k | Automated safety check: Pass | Apache-2.0 | |
| Operational Value Designergithub/gh-aw | 5.4k | — | ~6.8k | Automated safety check: Pass | MIT | |
| AWS Agentic AIzxkane/aws-skills | 367 | — | ~2.5k | Automated safety check: Pass | MIT | |
| Agentic Harness Design and ReviewNateBJones-Projects/OB1 | 4.7k | — | ~1.8k | Automated safety check: Pass | Custom licence |
dotnet/maui
Mines local Copilot CLI session logs for dotnet/maui to rank costly or failing runs, tag recurring failure modes, propose repo edits and emit guard evals.
greyhaven-ai/autocontext
Lets a Hermes agent run Autocontext scenarios, inspect Hermes curator state, export reusable knowledge and prepare local MLX or CUDA training data through the autoctx CLI.
github/gh-aw
Designs and verifies a deterministic grader that measures whether a GitHub Agentic Workflow run reached its real-world or repository outcome.
zxkane/aws-skills
AWS Bedrock AgentCore comprehensive expert for deploying and managing AI agents at scale.
NateBJones-Projects/OB1
Designs, evaluates and improves the harness around an AI agent: tool permissions, approval gates, state, memory, evals and observability, with phased plans.
NVIDIA-AI-Blueprints/deep-researcher-agent
A skill your agent uses when changing Deep Researcher Agent continuous integration, pre-commit, or contributor governance — editing .github/workflows/ (ci, ui, skills-eval, request-nvskills-ci)…
yaalalabs/agent-kernel
Code quality standards, formatting, Python style rules (classes over script-style functions, configuration-field rules), commit conventions, and PR workflow for Agent Kernel development.
yaalalabs/agent-kernel
Step-by-step guide for adding a new built-in test evaluator provider to Agent Kernel (beyond DeepEval, Opik and JEV).
yaalalabs/agent-kernel
Step-by-step guide for adding a new guardrail provider to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new knowledge base backend to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new messaging platform integration to Agent Kernel.
yaalalabs/agent-kernel
Step-by-step guide for adding a new multimodal attachment storage backend to Agent Kernel.
Set up testing and debug common issues in Agent Kernel projects. Ak Test is an agent skill from yaalalabs/agent-kernel. Set up testing and debug common issues in Agent Kernel projects.
Ak Test fits situations like: tasks that involve Agent evaluation and testing.
Run `npx skills add yaalalabs/agent-kernel --skill ak-test -a claude-code`. Or copy the skill folder (ak-py/src/agentkernel/skills/ak-test in yaalalabs/agent-kernel) into .claude/skills/ak-test in your project. Claude Code loads it when a task matches its description.
Run `npx skills add yaalalabs/agent-kernel --skill ak-test -a codex`. Or copy the skill folder (ak-py/src/agentkernel/skills/ak-test in yaalalabs/agent-kernel) into .agents/skills/ak-test 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 yaalalabs/agent-kernel --skill ak-test -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ak-test, .gemini/skills/ak-test, .github/skills/ak-test and .opencode/skills/ak-test in your project.
Going by SKILL.md and its folder, Ak Test needs the command-line tools its instructions call (pip, uv, terraform, curl, redis-cli and aws) and credentials named TYPESAFE_API_KEY. Our summary lists: Python 3; A credential in TYPESAFE_API_KEY.
SKILL.md names 2 domains. In commands or code: comet.com; the agent is likely to contact it when it follows the instructions. As links in the text: docs.typesafe.ai. 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.
Ak Test is published under the Apache-2.0 licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 3.9k tokens (SKILL.md is roughly 16k 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 Ak Test: Copilot Session Failure Analysis (dotnet/maui, 23k stars), Autocontext for Hermes (greyhaven-ai/autocontext, 1.3k stars), Operational Value Designer (github/gh-aw, 5.4k stars) and AWS Agentic AI (zxkane/aws-skills, 367 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
yaalalabs (a GitHub organization) maintains it in yaalalabs/agent-kernel, which has 192 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 9, 2026.
Source: yaalalabs/agent-kernel on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.