PLATFORM_SPEC.md — Deep Code CLI (lessweb/deepcode-cli)¶
New to gald3r on this platform? Start at Use gald3r with Deep Code CLI for a short overview before the full breakdown below.
Authoring status:
update(closes the all-❓stub — the owner directive was "DeepCode - if it can be made to work, keep otherwise I am ok removing"; this spec is the verdict: keep, fixed). Verified live on 2026-07-18 directly against the project's GitHub README,docs/mcp.md, anddocs/configuration.md(raw fetch, not cached), cross-checked against DeepSeek's ownapi-docs.deepseek.comintegration page. This independently re-confirms (and refreshes) an earlier 2026-06-02 verification found in an earlier internal archive — the two scans agree on every capability cell.
Deep Code (@vegamo/deepcode-cli on npm, lessweb/deepcode-cli on GitHub) is a real,
actively-maintained, third-party community terminal AI coding assistant optimized for the
deepseek-v4 model family. DeepSeek's own docs site lists it under "Agent Integrations" with an
explicit disclaimer: "This agent is provided entirely by a third party ... we assume no
responsibility for it." This matches an earlier internal assessment's framing — an
obscure community CLI, not a major platform — but it is a real, installable, documented tool
with a genuine gald3r-relevant config surface, not a doc-only or nonexistent project.
Deep Code natively supports three of the six gald3r-relevant extension primitives — rules
(via an AGENTS.md instruction file), Agent Skills, and MCP — while custom commands
are limited to a fixed built-in slash set (partial), and subagents and a lifecycle hook
system are absent.
1. Folder Hierarchy¶
<project-root>/
├── AGENTS.md ← instruction file Deep Code reads (scaffolded via /init)
└── .agents/
└── skills/ <name>/SKILL.md ← Agent Skills (project scope, cross-client interop path)
<project-root>/.deepcode/ ← Deep Code project-scope config
├── settings.json ← model/env + mcpServers + notify + thinking/reasoning
└── skills/ <name>/SKILL.md ← Deep Code's own native project skills path
~/ (user/home scope)
├── .deepcode/settings.json ← global config — SHARED with the Deep Code VSCode extension
└── .agents/skills/ <name>/SKILL.md ← user-global Agent Skills (interop path)
Per the live README's own documented scan priority (project native .deepcode/skills/ first,
project interop .agents/skills/ second, then the user-scope equivalents), both the native
and interop project skill paths are read — gald3r targets ./.agents/skills/<name>/SKILL.md
(the cross-client Agent-Skills convention shared with every other gald3r-supported Agent-Skills
tool), which Deep Code resolves natively as its documented second-priority project skills path.
Settings-file scope layering (per docs/configuration.md): <project_root>/.deepcode/
settings.json overrides ~/.deepcode/settings.json field-by-field (not a whole-file
replace) — confirmed by the doc's own per-field priority tables (e.g. MODEL: hardcoded default →
user settings.json → project settings.json → env var). A project-level settings.json containing
only mcpServers is therefore a valid, additive file that does not clobber the user's own
model/API-key configuration.
gald3r writes: AGENTS.md (once the central per-platform instruction-file emission lands —
see Rules/Memory below), .agents/skills/<name>/SKILL.md, and a minimal MCP registration inside
.deepcode/settings.json (mcpServers.gald3r, not a standalone .mcp.json — see MCP Support and
BUG note below).
Deep Code owns: the rest of the settings.json schema (model, env, thinking/reasoning,
notify, webSearchTool, telemetry, permissions), the built-in slash-command set, and the
fine-grained shell/file/network permission framework.
2. AI Instruction File¶
Deep Code reads AGENTS.md as its persistent, always-on instruction/context file —
scaffolded by the /init command (live README slash-command table: /init → "初始化
AGENTS.md 文件", i.e. "initializes the AGENTS.md file"). There is no CLAUDE.md read and
no separate rules//memory/ directory — AGENTS.md is the single instruction surface.
gald3r's AGENTS.md is therefore a first-class input; CLAUDE.md is not consumed.
3. Agents Support — ❌ NONE¶
- Deep Code operates as a single AI assistant. No sub-agents, agent roles, or distinct agent modes are documented in the live README or DeepSeek's integration page.
thinkingEnabled/reasoningEffortare model settings, not agent roles — nog-agnt-*parity target exists. Fold agent behavior intoAGENTS.mdinstructions or per-skillSKILL.mdcontext instead.- Source: https://github.com/lessweb/deepcode-cli (live README, 2026-07-18 fetch)
4. Skills Support — ✅ NATIVE¶
- Agent Skills (open
SKILL.mdstandard) discovered from, in scan-priority order: project./.deepcode/skills/(native) → project./.agents/skills/(cross-client interop) → user~/.deepcode/skills/(native) → user~/.agents/skills/(interop). Activate via the/skill/command picker or by typing the skill name. settings.json'senabledSkillsfield can selectively hide a skill by resolved name across both project and user scope (project overrides user, per-skill).- gald3r
g-skl-*/SKILL.mdloads natively at.agents/skills/— confirmed live, current. - Source: live README (
docs/mcp.md/docs/configuration.mdcorroborateenabledSkills), 2026-07-18 fetch.
5. Commands / Workflows — ⚠️ PARTIAL¶
- Built-in slash commands only:
/new,/resume,/continue,/model,/raw,/init,/skills,/mcp,/undo,/exit; the skill/command picker opens with/. - No mechanism for user-defined custom commands is documented — there is no
.deepcode/commands/(or equivalent) directory. gald3r@g-*//g-*commands have no native slash-command target; surface them as skills instead (each skill is invocable via the/picker). - Source: live README, 2026-07-18 fetch.
6. Hooks System — ❌ NONE¶
- No lifecycle/event hook system — no session-start, pre-tool, pre-commit, or file-watch hook framework.
- The only automation is the
notifyfield insettings.json: "a Shell script path executed automatically after each AI turn completes" — a post-turn-only callback (receivesDURATION/STATUS/FAIL_REASON/BODY/TITLEas env vars), it cannot block tool calls, inject session-start context, or gate commits. - gald3r
g-hk-*.pyhooks have no native wiring; thenotifyscript can at most fire a post-turn side-effect. - Source:
docs/configuration.md(notifyfield table), 2026-07-18 fetch.
7. Rules / Memory — ✅ NATIVE¶
AGENTS.mdis the persistent always-on instruction/context file, scaffolded via/init. It is the single rules surface — no.deepcode/rules/, no.mdcfiles, no separate memory store./resume//continuerestore prior conversation state but are not a persistent rules file.- gald3r
g-rl-*rules map into the singleAGENTS.mdinstruction file (concatenated always-apply content); there is no per-rulealways_apply/agent_requestedtyping and noglobs:scoping. - Generator status:
layout_map.yamlcurrently declares no dedicatedrules:entry fordeepcode(the bootstrap-provenance convention: an entry is added only once a REAL donor placement is verified, never guessed).AGENTS.mdemission is the general per-platform fix covered by sibling task ("Generator must always emit a root AGENTS.md per platform") — its per-platform instruction-filename mapping is the correct place to adddeepcode → AGENTS.md, not a deepcode-specific branch here. This remains aCAPABILITY_GAPS.mdentry for therulescomponent when a deepcode overlay is generated. - Source: live README
/initslash-command description, 2026-07-18 fetch.
8. MCP Support — ✅ NATIVE (config path corrected)¶
- MCP is configured via the
mcpServersobject insidesettings.json(user- or project-scope) — there is no standalone.mcp.jsonfile anywhere in Deep Code's documented config surface. Inspect configured servers/tools with/mcp. Standard stdio transport (command/args/envper server); whencommandisnpx, Deep Code auto-prepends-y. - Because
~/.deepcode/settings.jsonis shared with the VSCode extension, MCP servers configured once apply to both surfaces. - BUG FOUND AND FIXED:
layout_map.yaml'sdeepcode.mcp.filepreviously pointed at.deepcode/.mcp.json— a path Deep Code never reads. gald3r's generated MCP registration therefore silently never reached the tool ("dead.mcp.json" finding from an earlier internal assessment, confirmed correct by this live re-verification). Corrected to.deepcode/settings.json, which matchesgenerate_overlay's existing minimal-registration-JSON contract (_emit_mcp) verbatim — a projectsettings.jsoncontaining onlymcpServersis valid per the documented field-layered config model (see Folder Hierarchy above). - Source:
docs/mcp.md+docs/configuration.md(mcpServersfield table, full worked examples), 2026-07-18 fetch.
Parity vs. Cursor Reference¶
Deep Code reaches partial parity with the Cursor reference (g-skl-platform-cursor): native
rules (AGENTS.md, pending the central emission), skills (Agent Skills standard, native
today), and MCP (mcpServers in settings.json, path now corrected); partial commands
(fixed built-in slash set only); no subagents and no lifecycle hooks. The biggest gaps vs.
the reference are custom commands, subagents, and the hook system — these are real capability
absences in the tool itself, not gald3r integration gaps.
Reuse note: Deep Code reads AGENTS.md (not CLAUDE.md) and discovers
.agents/skills/ (not .claude/skills/). gald3r's AGENTS.md + .agents/skills/ artifacts
are directly reusable; the Claude-Code-specific CLAUDE.md / .claude/ tree is not consumed.
Hook System¶
- Type: none (no lifecycle-hook framework)
- Config file:
settings.json(notifyfield only) - Events available: none — a single post-turn
notifycallback, fired after each model turn - Event payload format: env vars (
DURATION,STATUS,FAIL_REASON,BODY,TITLE) passed to the notify script; fire-and-forget, no structured event stream - gald3r hook files:
g-hk-*.pydo not wire natively — at most a post-turn side-effect
Atypical Handling¶
- Shared config surface:
~/.deepcode/settings.jsonis shared with the Deep Code VSCode extension — gald3r-managed settings (model,mcpServers,notify) apply to both surfaces. - Instruction-file convention: Deep Code reads
AGENTS.md(via/init), notCLAUDE.md. - Skills path duality: project skills resolve from both
.deepcode/skills/(native, higher scan priority) and.agents/skills/(interop, lower priority but still read) — gald3r targets the interop path since it is the one shared with every other Agent-Skills tool in the roster. - MCP config is field-layered, not file-standalone: unlike most gald3r platforms, MCP does not
get its own dedicated file — it is one field inside a settings file Deep Code also uses for
model/API-key/notify config.
layout_map.yaml'smcp: {file: ".deepcode/settings.json"}mapping reuses the SAME target path a user might already have populated with their own model settings;generate_overlay's existing overwrite-not-mergematerialize_overlaybehavior (uniform across every platform) means a fresh MCP overlay write will replace an existing project-level.deepcode/settings.jsonwholesale if one is already present — this is a pre-existing, generic generator characteristic (not unique to deepcode) and out of this task's scope to change; flagged here for visibility since deepcode is the platform most likely to have a pre-populated file at that exact path (its own model/API-key config commonly lives there too). - Source disambiguation: web searches surface unrelated DeepSeek-adjacent tools (DeepSeek-
Reasonix, DeepSeek-TUI, deepseek-as-subagent) that DO have hooks/subagents — these are
different projects and are excluded from this assessment of
lessweb/deepcode-cli.
gald3r Integration Notes¶
- Ship gald3r's
AGENTS.md(instruction/rules, pending) +.agents/skills/<name>/ SKILL.mdtree — Deep Code discovers both natively today. - Surface gald3r commands as skills (invocable via the
/picker); there is no custom-command directory to target. - Do not rely on hooks — degrade SessionStart context injection, PreToolUse guards, and
pre-commit gates to manual/skill-driven flows;
notifyis post-turn-only and cannot block. - Configure MCP via
mcpServersin.deepcode/settings.json(corrected path) — remember it also applies to the shared VSCode surface. - Re-verify on the next
@g-platform-scan-docs deepcode(crawl_max_age_days: 14).
Capability Summary¶
| Hooks | Rules | Skills | Commands | MCP | Docs Fresh |
|---|---|---|---|---|---|
| ❌ | ✅ | ✅ | ⚠️ | ✅ | ✅ |
Legend: ✅ verified working · ⚠️ partial / Cursor-generic · ❌ not supported · ❓ untested.
Overall platform status: ⚠️ — real, verified config surface (skills + MCP fully wired by this
task; rules/AGENTS.md pending sibling task's central emission); commands/agents/hooks are
genuine tool-side gaps, not integration gaps. This is a stub-tier, non-roster platform (not one
of the 23 fully-supported IDE targets) — kept per owner directive because it has a real, working
config surface, not merely because it exists.
Verification Evidence (live re-scan 2026-07-18)¶
| Capability | How verified |
|---|---|
| Project existence/legitimacy | curl raw-fetch of github.com/lessweb/deepcode-cli README (npm badges, MIT license, real contributor/issue links) + DeepSeek's own api-docs.deepseek.com/quick_start/agent_integrations/deepcode page (title: "Integrate with Deep Code | DeepSeek API Docs") |
| Commands | Live README — fixed built-in slash set; no user-defined custom-command directory → ⚠️ partial |
| Rules | Live README — /init scaffolds AGENTS.md; reads AGENTS.md not CLAUDE.md; no rules/ dir → ✅ native (gald3r wiring pending) |
| Agents | Live README / DeepSeek docs — single assistant, no sub-agents/roles/modes → ❌ none |
| Skills | Live README's documented scan-priority table (4 paths, project + user, native + interop) → ✅ native |
| Hooks | docs/configuration.md's notify field table — no lifecycle hooks, post-turn-only → ❌ none |
| MCP | docs/mcp.md + docs/configuration.md — mcpServers field inside settings.json; no standalone .mcp.json anywhere in the docs → ✅ native; generator path bug found and fixed |
| Instruction file | Live README slash-command table — AGENTS.md via /init |
| Shared config | Live README FAQ + docs/configuration.md — ~/.deepcode/settings.json shared with the Deep Code VSCode extension |
Cross-check: this 2026-07-18 live scan independently reproduces every capability cell from an earlier 2026-06-02 scan (recorded in an earlier internal archive) — agreement across two independent scans 46 days apart is strong evidence the capability profile is stable, not a transient doc state.
Reference page — canonical source: g-skl-platform-deepcode/PLATFORM_SPEC.md in the engine repo, generated by scripts/generate_platform_support_docs.py. Pages marked curated are hand-assessed and not yet live-verified.