Agent Skills › overmind-core/overmind › engineering-taste

engineering-taste

GitHub

定义代码工程品味与架构原则,倡导从零重构而非打补丁,遵循极简依赖与删除优先策略。用于设计变更、方案选型、审查过度设计及评估技术债务。

.agents/skills/engineering-taste/SKILL.md overmind-core/overmind

Trigger Scenarios

设计新功能的架构方案 审查代码是否存在过度工程化 决定是否引入新的依赖或抽象层 决定保留还是删除遗留代码路径

Install

npx skills add overmind-core/overmind --skill engineering-taste -g -y
More Options

Non-standard path

npx skills add https://github.com/overmind-core/overmind/tree/main/.agents/skills/engineering-taste -g -y

Use without installing

npx skills use overmind-core/overmind@engineering-taste

指定 Agent (Claude Code)

npx skills add overmind-core/overmind --skill engineering-taste -a claude-code -g -y

安装 repo 全部 skill

npx skills add overmind-core/overmind --all -g -y

预览 repo 内 skill

npx skills add overmind-core/overmind --list

SKILL.md

Frontmatter
{
    "name": "engineering-taste",
    "description": "The engineering bar for this repo — rebuild from first principles rather than patching, the simplicity ladder, what must never be simplified away, and the one-runnable-check rule. Use when designing a change, choosing between approaches, adding a dependency or abstraction, deciding whether to keep a legacy path, or reviewing for over-engineering."
}

Engineering taste

Efficient, not careless. The best code is the code never written.

Default to rebuilding, not patching

The platform has no real users yet. A request to change something is a request to build it the right way from first principles — not to add a tweak beside the wrong shape. Core code logic and tests owe nothing to backwards compatibility in almost every case: delete the old path rather than keeping it alive behind a flag, a shim, an _v2 name, or an "if legacy" branch.

Two things do carry forward, because production and staging hold real state:

  • Migrations. Schema changes ship as migrations that run cleanly against the deployed databases.
  • Anything explicitly called out as needing a transition.

The codebase is already bloaty. A change that leaves both the old and the new way standing has made it worse, however small the diff looked. Removing the old path is part of the change, not a follow-up.

The ladder

Before writing any code, stop at the first rung that holds:

  1. Does this need to be built at all?
  2. Does the standard library already do it? Use it.
  3. Does a native platform feature cover it? Use it.
  4. Does an already-installed dependency solve it? Use it.
  5. Can it be one line? Make it one line.
  6. Only then: write the minimum code that works.

Rules

  • No abstractions that weren't explicitly requested.
  • No new dependency if it can be avoided.
  • No boilerplate nobody asked for.
  • Deletion over addition. Boring over clever. Fewest files possible.
  • Question complex requests: "Do you actually need X, or does Y cover it?"
  • When two approaches are the same size, take the edge-case-correct one. Less code, not the flimsier algorithm.

Blast radius is part of the work

A change is finished when every surface that reflects it has been updated, not when the vertical it started in compiles. Before calling anything done, check what else reads the thing you changed — the pr-etiquette skill lists the specific surfaces that get missed here.

Never simplify away

Input validation at trust boundaries. Error handling that prevents data loss. Security. Accessibility. The calibration real hardware needs — the platform is never the spec ideal, a clock drifts, a sensor reads off. Anything explicitly requested.

Verify behavior

Follow the testing policy in AGENTS.md. Non-trivial logic needs runnable behavior verification; use the existing E2E flow and record its artifact. Do not create a per-function test or self-check merely because code was added.

Naming a ceiling

A deliberate shortcut with a known limit — a global lock, an O(n²) scan, a naive heuristic, a fixed page cap — is worth one comment, and only if it names both the ceiling and the upgrade path. A shortcut with no ceiling to name needs no comment at all. See the code-comments skill.

Version History

  • e146ecd Current 2026-10-18 15:42

Same Skill Collection

.agents/skills/api-endpoints/SKILL.md
.agents/skills/backend-architecture/SKILL.md
.agents/skills/code-comments/SKILL.md
.agents/skills/data-workshop/SKILL.md
.agents/skills/frontend-design/SKILL.md
.agents/skills/mcp/SKILL.md
.agents/skills/pr-etiquette/SKILL.md
.agents/skills/run-tests/SKILL.md
.agents/skills/seed-demo-data/SKILL.md
overmind/skills/model-training-engineering/SKILL.md
overmind/skills/overmind-agent/SKILL.md
overmind/skills/overmind-datasets/SKILL.md
overmind/skills/overmind-evaluations/SKILL.md
overmind/skills/overmind-inference/SKILL.md
overmind/skills/overmind-integrations/SKILL.md
overmind/skills/overmind-observability/SKILL.md
overmind/skills/overmind-optimiser/SKILL.md
overmind/skills/overmind-training/SKILL.md
overmind/skills/overmind/SKILL.md
.agents/skills/finetuning-model-onboarding/SKILL.md

Metadata

Files
0
Version
e146ecd
Hash
32c58f68
Indexed
2026-10-18 15:42

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