Give your AI coding agent a personality. Composable persona + style + skills for Claude Code, Codex, Gemini CLI & OpenClaw. Ships Tech Persona Card v1.0 spec.
> /plugin marketplace add telagod/code-abyss> /plugin install code-abyss@code-abyss
Repo: telagod/code-abyss
What's inside
Most AI coding agents have no memory of who they are. They respond in the same flat tone whether they're debugging a race condition, reviewing architecture, or triaging a P0 incident. They forget your conventions between sessions. They flip-flop on advice. They sound like a help-desk script.
And when you ask them about security — pentest, code audit, threat modeling, IR — most agents fall back to generic OWASP recitation, because the underlying skill library was never written by people who actually run red/blue/purple teams.
You don't want a help desk. You want a principal engineer who shows up with a personality, executes consistently, closes the loop — and has a security spine when things get real.
One command installs a layered runtime into your agent:
┌───────────────────────────────────────────────────────────┐
│ Voice who it sounds like → config/personas/*.json │
│ Judgment how it decides → skills/_kernel/* │ ← lazy, router-invoked
│ Style how it sounds → output-styles/*.md │
└───────────────────────────────────────────────────────────┘
6 personas × 6 styles = 36 validated combinations
Pick any persona. Pair it with any style. Underneath both sits a discipline kernel — 9 bundles of engineering judgment (when to push back, how to size scope, when a domain calls for a specific tradeoff) invoked by a thin router on demand instead of baked into every prompt. The always-on core stays small (iron laws, skill routing, a precedence anchor, the safety floor); everything else loads lazily so adding discipline content doesn't blow the context budget. Your agent becomes a consistent character with structured execution, domain expertise, and a backstop against the trained agree-reflex — across every session.
SKILL.md ≤ 110 lines (avg 59), heavy content lives in references/cultivating-skills / cultivating-personas let the agent distill repeated workflows into reusable skills, with a safety scan and a three-tier publish funnel (local → project → community)abyss persona slug (邪修红尘仙) ships with npm — all other personas are fetched from GitHub on first use and cached locally, slimming the packageindexing-code skill (calling convention only): the indexing-code skill ships the calling convention for the external abyss Rust CLI (call graph + temporal analysis). The CLI itself is a separate product with its own release cadence — install it with its own install.sh / cargo binstall / @code-abyss/cli npm wrapperabyss Rust CLI ships four-language reference resolution (Go / TypeScript / Python / Rust), benchmarked against SCIP ground truth across five corpora at ≥98.5% gated precision. See its repo for numbersabyss skill-manifest when the installed abyss CLI is ≥ 0.5.22 — exposed CLI commands, MCP tools, and daemon socket verbs are discovered at install time instead of hard-coded--with-abyss / --with-mcp deprecated; graph hooks for claude/codex/gemini move toward abyss attach (completed in v5.0)doctor / compose / score. Upgrade guide: docs/MIGRATION-v5.mdnpx code-abyss@5.0.0-rc.1 -t claude -y # persona / skills / style + default enforcement + inject map
curl -fsSL https://raw.githubusercontent.com/telagod/abyss/main/install.sh | bash # abyss CLI (separate product)
abyss attach claude # code-graph hooks (idempotent)
npx code-abyss doctor # health + migration hints
Swap -t claude for codex / gemini / openclaw. For openclaw/pi/hermes (whose hook surface abyss CLI does not own), use npx code-abyss -t openclaw --with-hooks to spawn the bundled install-hooks.sh. Or as a Claude Code plugin:
claude plugin install code-abyss
v5 cutover: code-abyss does not download the abyss binary or inject graph hooks for claude/codex/gemini (
--with-abyss/--with-mcpremoved). Character Stop-hook is default on (opt out:--no-enforcement). Recompose without reinstall:npx code-abyss compose -t claude --persona <slug> --style <slug>.
CORE · LITERARY
abyss吾 → 魔尊
Security-first dark cultivator. Direct, decisive, closes every loop. Ships with npm — works offline.
#security #xianxia #decisive
REMOTE · LITERARY
scholar在下 → 前辈
Literary Chinese scholar. Treats code as poetry, debugging as puzzle-solving.
#literary #classical #meticulous
REMOTE · CASUAL
elder-sister姐姐 → 小宝
Warm mentor. Wraps sharp judgment in genuine care. Guides through questions.
#gentle #mentoring #insightful
REMOTE · PLAYFUL
junior-sister本仙女 → 师兄
Hyperactive bug hunter. Roasts bad code, then silently fixes it.
#playful #energetic #chaotic
REMOTE · CASUAL
iron-dad哥 → 宝子
Dependable big brother. Absorbs pressure, radiates warmth. Dad-joke equipped.
#warm #dependable #protective
REMOTE · COMMUNITY
dongbei-yujie姐 → 老蒯
Sharp-tongued Northeast code overseer. Cuts straight to the bug, then patches the road. Creator: wons
#dongbei #blunt #principal
Core persona (abyss) ships with npm and works offline. Remote personas are fetched from GitHub on first --persona <slug> use and cached at ~/.code-abyss/personas/.
# Mix freely — any persona × any style
npx code-abyss -t claude --persona elder-sister --style abyss-cultivator -y
# → fetches elder-sister on first run, cached thereafter
Voice and style change; judgment shouldn't. Underneath every persona×style combination sits
a discipline kernel — 9 bundles of engineering judgment, vendored in-tree (skills/_kernel/,
via npm run kernel:sync) and invoked lazily by a thin router (never baked into every
prompt, so adding discipline content doesn't blow the context budget):
| Bundle | Governs |
|---|---|
| 🏛 doctrine | Delegation, retry/escalate/ask-user decisions, the done-gate |
| 🔍 methods | Investigating, designing, planning, verifying, writing for someone else |
| 🎭 character | Pushback, scope sizing, bad news, resisting the trained agree-reflex |
| 🔁 loop-engineering | Session pacing, unit sizing, where a learning should live |
| ⚙️ backend | Stack/architecture tradeoffs, data discipline, production floors |
| 🎨 frontend | Visual design taste, concrete craft over generic defaults |
| 🔩 hardware | Component selection, electrical margins, firmware-for-unattended-devices |
| 🤖 ml | Method-selection ladder, eval-as-spec, LLM-era craft |
| 🛡 security | Threat modeling, the authorization gate before any offensive-flavored request |
Two ways this becomes real, not aspirational:
--no-enforcement.scripts/persona-battery/ is a small, honest behavioral eval — 10
probes (does the persona hold correctness over agreeableness? lead with bad news? refuse
to fake a "done"?) scored by an LLM judge, never faked as a pass when unscored. See
CLAUDE.md's persona behavioral battery section
to run it (costs real API calls, not part of default CI).Domain bundles also wire upward into 16 matching exec skills (pentest, architecture design, ML pipelines, etc.) as a "judgment before execution" gate — the domain bundle decides whether/what/tradeoffs, the exec skill still owns how.
4 native security skills, 4073 lines of original engineering content. No Apache-2.0 upstream — every example, every detection signal, every defense pattern is written for this project.
| Skill | Focus | Size |
|---|---|---|
| 🛡 defending-applications | Web/API/GraphQL hardening, OAuth/OIDC/JWT/Session, LLM AppSec (prompt injection, RAG poisoning, agent authz) | 785 lines |
| ☁️ securing-cloud-and-supply-chain | Container escape, K8s RBAC/PSS, Service Mesh, SLSA/Sigstore/SBOM, cloud IAM, IaC | 1246 lines |
FAQ
code-abyss is a Claude Code plugin with 30 hand-picked skills for development work, indexed on Flowy. Install it with the command on its page. It includes analyzing-changes, analyzing-security, analyzing-spreadsheets. Its skills do not fire on their own yet. Request auto-invocation to have Flowy route them as you prompt. Free and open source.
Is this plugin yours?
Claim it with GitHubSubmit a pluginPromote it