agentsclimarketplace

Serena config

Skill paulnsorensen/skillz-that-grillz/skills/serena-config

Agent skill repository that don't fit cleanly into any of my other cheese-related repositories

Install
npx -y skills add paulnsorensen/skillz-that-grillz --skill serena-config

Assembled from the repository path, not quoted from the project. Check it against their README if it does not work.

One thing to look at

  • 1 stars1 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.

What its author says it does

Copied from the file, not written here

Configure the Serena MCP server — its global defaults and a repo's per-project settings. Use when the user says "configure serena", "set up serena for this repo", "serena project config", "serena global config", "tune serena for this codebase", "edit serena_config.yml", "edit project.yml", "monorepo serena", "serena picked the wrong language", "serena is indexing vendor/node_modules", "make serena read-only here", "serena contexts and modes", "what context for claude-code", "disable serena memory/onboarding", "point serena at my installed language server", "ls_specific_settings", "ls_path", "SERENA_HOME", or "move the .serena folder". Routes per-repo `.serena/project.yml` questions to `references/project-config.md` and machine-wide `~/.serena/serena_config.yml` (settings, contexts, modes, language-server tuning) to `references/global-config.md`. Do NOT use for general "use serena to find / edit X" routing — that is an MCP-routing concern, not configuration.

The file declares its own license as MIT. That is the author’s claim about this one file, and it is not the same thing as the license GitHub reports for the repository, which is listed with the other numbers below.

SKILL.md

6.0 KB, as published. Nobody here has run it

serena-config

Configure Serena across its two layers: the machine-wide global config and a repo's per-project config.

Serena is configured in layers, each overriding or extending the one above:

  1. Global~/.serena/serena_config.yml. Defaults for every project: language backend, default tools/modes, global ignore rules, language-server tuning.
  2. Project<repo>/.serena/project.yml. Per-repo overrides: languages, ignore rules, write access, monorepo workspace folders, added modes.
  3. Contexts & modes — composable toolset/prompt presets, set globally, per-project, or at startup.
  4. CLI args to serena start-mcp-server — override or extend everything above.

<certain> Many project.yml keys extend or override serena_config.yml. Put machine-wide defaults in the global file; put only repo-specific aspects in the project file.

Route to the right reference

The user wants to…Read
Tune a single repo: wrong language, monorepo cross-refs, ignore vendor//generated dirs, read-only repo, per-repo LSP pathreferences/project-config.md
Create / index / activate a project; understand project.local.yml local overridesreferences/project-config.md
Set machine-wide defaults: language backend, default tools/modes, global ignore, loggingreferences/global-config.md
Pick or change a context (claude-code, ide, desktop-app, …)references/global-config.md
Add / override modes (planning, editing, no-memories, query-projects, …)references/global-config.md
Point Serena at a self-installed language server (ls_path) or pin an LSP versionreferences/global-config.md
Move the data directory (SERENA_HOME) or the per-project .serena folderreferences/global-config.md

When to act (and when not to)

Serena auto-creates both config files with sensible defaults — global on first run, project on first activation of a repo. Most repos need no edits. Touch a config only when one of these is true:

SymptomLayerFix lives in
LSP can't resolve symbols across package boundaries (monorepo)projectadditional_workspace_folders
find_symbol returns wrong-language results or LSP errors at startupprojectlanguages:
Symbol search floods from vendor/, node_modules/, dist/, generated codeprojectignored_paths:
Repo is review-only and Serena should not writeprojectread_only: true
Wrong toolset for the harness (e.g. Claude Code duplicating built-ins)global--context
Want planning-only or memory-free behaviorglobalmodes
Self-installed LSP, or need to pin an LSP/runtime versioneitherls_specific_settings

If none apply, leave the config alone — the bootstrap is correct.

The one proactive exception — ignored_paths. Unlike the rows above, this is worth setting before you feel pain in any repo that commits vendored or generated code (vendor/, checked-in dist/, generated clients, snapshot fixtures). .gitignore is honored by default, but committed noise pollutes find_symbol / get_symbols_overview (and can cut the LSP's initial indexing). See references/project-config.md § "ignored_paths — set this in most non-trivial repos". ls_path, by contrast, stays an escape hatch — managed-first is the recommended default (see references/global-config.md).

Editing discipline

  • Never hand-create a config from scratch. Let Serena bootstrap it (serena project create for a project, first run for the global file), then edit. The generated files carry inline documentation comments and fields added by newer versions — preserve them.
  • Verify after editing. serena print-system-prompt "$(pwd)" renders the resolved config; confirm the project name, language list, active modes, and excluded tools are what you expect. Then probe the LSP with a find_symbol call against a known symbol — a clean record means the languages parsed; an LSP startup error means languages: or ls_specific_settings: is wrong.
  • On LSP weirdness after a change, delete .serena/cache/ to force a rebuild; some servers also need the MCP server restarted to fully reset.

References

Keep looking

Skills are one crate of 328,083. Ordering is by how many stacks a row turns up in, so the top of any crate is what has actually been picked rather than what has the most stars.