Repository navigation
v1.1.0 — Command Code and correctness pass
Native Command Code provider, then a correctness pass over every registered check against 2026-08-31 official docs. Includes 1.0.1. 87 checks, 420 tests. Still offline on check.
Install
npx @chimix/agentscan@latest
npx skills add SimaAlexandru99/agentscanGitHub Action:
- uses: SimaAlexandru99/agentscan@v1
with:
fail-on: errorSkill: https://skills.sh/simaalexandru99/agentscan/agentscan
check against 2026-08-31 official docs. Includes 1.0.1. 87 checks, 420
tests.
Added
- Hook schema profiles:
claude|vscode-native|copilot-cli|
commandcode..github/hookswithversion: 1is Copilot CLI. - Claude hook schema: required
type(not inferred fromcommand/url);
mcp_toolneedsserver+tool;prompt/agentneedprompt;
documented event/handler compatibility; nested matcher groups only. - Copilot CLI: camelCase events mapped onto VS Code names;
bash/
powershell/command;cwd;timeoutSecthentimeout. Prompt
hooks only onsessionStart. User~/.copilot/hooksunder--global. - Agent Skills optional constrained fields:
compatibility1..500,
metadatamap<string,string>,allowed-toolsstring. Info for
SKILL.md>500 lines. File references resolve from the skill root only. - Claude skill listing budget: 1% context window, 8000-character fallback,
per-entry cap 1536, listing text is description (or first markdown
paragraph) pluswhen_to_use. First paragraph satisfies missing
description. - OpenCode V2: local
commandmust be an argv array
(opencode.mcp.command-not-array). - Continue standalone YAML blocks require
name/version/schema
(continue.mcp.missing-block-metadata). Copied JSON is not checked. - Gemini underscore alias warning (
gemini.mcp.underscore-alias). - Claude reserved MCP names including
workspace
(claude.mcp.reserved-name). - Codex chain knobs:
AGENTS.override.md>AGENTS.md>
project_doc_fallback_filenames; one file per directory; root→cwd;
project_doc_max_bytes;project_root_markers. - Coverage matrix uses five dimensions (project discovery, global
discovery, schema, precedence, conformance) instead offull/
partial. - Conformance fixture
tests/fixtures/conformance/copilot-hooks/. - Spec capture
docs/spec/copilot-hooks.md. Alias
claude.hook.mcp-tool-without-name→
claude.hook.mcp-tool-without-server-or-tool.
Changed
- Nested
<dir>/.commandcode/AGENTS.mdis Command Code memory when that
directory has noAGENTS.md(official memory table). - Native VS Code remains command-only with its documented eight events.
vscode.hook.http-without-urlandvscode.hook.mcp-tool-without-name
are removed. - Claude agent names: lowercase letters and hyphens (no digits); filename
is not compared toname. skill.description-budgetprovenance is vendor-recommendation, not a
16000-byte heuristic.
Added (Command Code provider)
- Provider
commandcodefrom official pages underdocs/spec/commandcode-*.md
(read 2026-08-31). Unknown stays skip: no invented local-project MCP slug,
no bundled-skill scan, no--skillflags, no model-id list, no mods
execution. - Skills:
.commandcode/skillsonly at the Command Code project root
(Agent Skills contract),.agents/skillswalk-up (max 10 hops from cwd,
stopping at home), extra dirs from the highest-precedence settings
skillsarray (replace, not merge; relative paths resolve against the git
root). User~/.commandcode/skillsand~/.agents/skillsunder
--global. - Memory: per directory, first existing of
AGENTS.mdor
.commandcode/AGENTS.md(project and nested). User
~/.commandcode/AGENTS.mdunder--global. Unresolved@pathis not a
hard error. Codex's instruction chain excludes.commandcode/AGENTS.md. - Agents:
<project>/.commandcode/agents/*.mdat the Command Code project
root only (git root, or cwd outside a git repo); filename supplies
name; noclaude.agent.*on these files. Checks:
commandcode.agent.reserved-name(explore/plan/review/
general),invalid-permission-mode,invalid-field-typecovering every
documented custom-agent typed field (reasoningEffortis not one of them).
maxTurnsmust be a positive integer. - Hooks: four events (
PreToolUse,PostToolUse,Stop,SessionStart);
nestedhooksarray required;typemust be the string"command";
commandmust be a string (not an argv array);matchermust be a string
when present. Timeout 0–600. A matcher onStop/SessionStartis
runtime-dead, not a schema error. Project and user hooks for the same event
coexist; only an exact duplicate command string is deduplicated (project
wins).settings.local.jsonfollows settings merge (an event array
replaces the project array for that event).COMMANDCODE_PROJECT_DIRand
COMMANDCODE_CWDexpand against the Command Code project root. - Settings: Command Code project root is the git root (a child
.cursor
does not hide<git-root>/.commandcode/).modelinventoried, not
validated. Inlinemcp.servers(array or object map; unnamed array items
are inventory-only). User~/.commandcode/mcp.jsonunder--global.
Spec/runtime checks skip shadowed lower-precedence definitions; security
checks still inspect every readable MCP file. - Slash commands: inventory
.commandcode/commandsat the project root and
the user dir — no required-field checks. - Mods: inventory
mods.paths— never execute or import TypeScript. - Conformance fixture
tests/fixtures/conformance/commandcode/. spec:checktracks captured surfaces and diffs Claude, VS Code, Copilot
CLI, and Command Code hook events against live pages.
Also changed
- Default
skillPathsincludes.commandcode/skills. --global/includeGlobalalso scans~/.commandcode/skills,
~/.agents/skills, user Command Code agents, MCP, memory, Copilot user
hooks, and Codex global AGENTS files.- Shared
.mcp.jsonismcp-json, not Claude-only.
1.0.1 (shared .mcp.json is mcp-json, not Claude-only) ships inside this package version; see CHANGELOG.md.