Agent Skills › facebook/docusaurus › code-style

code-style

GitHub

规范代码结构与风格,确保人类可读性。要求分层组织、意图明确、优先可读性而非微优化,并标记废弃代码以便后续清理。适用于所有代码编写和修改场景。

.agents/skills/code-style/SKILL.md facebook/docusaurus

Trigger Scenarios

编写新代码 修改现有代码 重构代码结构

Install

npx skills add facebook/docusaurus --skill code-style -g -y
More Options

Non-standard path

npx skills add https://github.com/facebook/docusaurus/tree/main/.agents/skills/code-style -g -y

Use without installing

npx skills use facebook/docusaurus@code-style

指定 Agent (Claude Code)

npx skills add facebook/docusaurus --skill code-style -a claude-code -g -y

安装 repo 全部 skill

npx skills add facebook/docusaurus --all -g -y

预览 repo 内 skill

npx skills add facebook/docusaurus --list

SKILL.md

Frontmatter
{
    "name": "code-style",
    "description": "How to structure code so that humans can review it. Use whenever you write or modify code (packages, scripts, tests, website), before writing it."
}

Code style

Humans review all the code of this repository: write code that is easy to read and understand, even if it requires introducing intermediate abstractions.

Structure code as a tree

Readers should see the high-level picture first, and dive into the implementation details only if needed.

  • Don't inline all the low-level calls sequentially in a single long function or script.
  • Start with a short top-level function (main(), the exported function…) that reads like a summary of what the code does, delegating each step to a well-named function.
  • Don't mix different levels of abstraction in the same function: a function either orchestrates high-level steps, or implements a low-level detail.
  • Order the code top-down: high-level functions first, then the functions they call, then the low-level helpers.
async function main() {
  const monorepo = await loadMonorepo();

  const errors = [
    ...checkCatalogsSplit(monorepo),
    ...checkTemplatesMatchCatalogs(monorepo),
  ];

  reportErrors(errors);
}

Make the intent explicit

  • Use well-named intermediate variables and functions to name what a piece of code computes, instead of long expressions or comments.
  • Group related lines together with line breaks, and {} blocks when it helps.
  • Prefer pure functions, that compute a result from their arguments, over functions with side effects. Keep side effects (I/O, logging, process.exit()…) at the edges, in the top-level functions.
  • Keep data loading separate from the logic using it: load everything first, then pass the data to pure functions.

Readability over micro-optimizations

Unless the code is on a hot path where performance matters, favor readability over micro-optimizations and clever one-liners. Iterating over a list several times with well-named steps is fine when the list is small.

Mark retro-compatibility code for removal

Code that only exists for retro-compatibility or to help users migrate must be cleaned up in the next major version. This includes deprecation warnings, @deprecated JSDoc tags, Joi .forbidden() schemas with a migration error message, never types for removed attributes, legacy code paths, escape hatches…

When adding such code, always add a TODO Docusaurus v<NextVersion> comment next to it, saying what to clean up. <NextVersion> is the major version of lerna.json plus one. It makes the code easy to find with a search when we start working on the next set of breaking changes.

// TODO Docusaurus v5: remove this migration error

Version History

  • 7b6826b Current 2026-10-19 04:29

Same Skill Collection

.agents/skills/dependencies/SKILL.md
.agents/skills/pull-requests/SKILL.md

Metadata

Files
0
Version
7b6826b
Hash
0e1f8cd7
Indexed
2026-10-19 04:29

홈 - 위키
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-10-20 06:02
浙ICP备14020137号-1