Token导航 LogoToken导航TokenDH.com
前端设计敏感数据github未标认证来源可访问clear审计通过

simplify简化

Agent Skill

用于辅助安全审计、权限检查、凭据风险、认证流程和常见漏洞排查。它适合让 Agent 梳理敏感配置、检查依赖风险、分析鉴权逻辑或生成安全复核清单。使用时不能把工具输出直接当最终结论,涉及密钥、令牌、用户数据或生产系统时,应先确认最小权限、脱敏方式和操作边界。

总安装

212

周安装

9

GitHub Stars

26

下载量

74
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

3

许可证

MIT

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:simplify(简化)
来源仓库:https://github.com/outfitter-dev/agents
仓库路径:skills/simplify
安装命令:
npx skills add https://github.com/outfitter-dev/agents --skill simplify
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/outfitter-dev/agents --skill simplify

简介

用于辅助安全审计、权限检查和认证流程分析,适合梳理敏感配置和依赖风险。

  • 适用于密钥管理、令牌验证和常见漏洞排查场景。
  • 通过 npx skills add 命令从 GitHub 仓库安装并使用。
  • 不能把工具输出直接当最终结论,涉及生产系统时应确认最小权限和操作边界。
  • 建议结合原始 README 核验具体用法和功能边界。

SKILL.md

Challenge Complexity

Systematic pushback against over-engineering → justified simplicity.

<when_to_use>

  • Planning features or architecture
  • Choosing frameworks, libraries, patterns
  • Evaluating proposed solutions
  • Detecting premature optimization or abstraction
  • Build vs buy decisions

NOT for: trivial tasks, clear requirements with validated complexity, regulatory/compliance-mandated approaches

</when_to_use>

Load the maintain-tasks skill when applying framework to non-trivial proposals:

StageTriggeractiveForm
IdentifyComplexity smell detected"Identifying complexity smell"
AlternativeGenerating simpler options"Proposing simpler alternatives"
QuestionProbing constraints"Questioning constraints"
DocumentRecording decision"Documenting decision"

Task format:

- Identify { complexity type } smell
- Propose alternatives to { specific approach }
- Question { constraint/requirement }
- Document { decision/rationale }

Workflow:

  • Start: Create Identify in_progress when smell detected
  • Transition: Mark current completed, add next in_progress
  • Skip to Document if complexity validated immediately
  • Optional stages: skip Alternative if obvious, skip Question if constraints clear

Adjust tone based on severity:

Alternative (Minor complexity):

"Interesting approach. Help me understand why X over the more common Y?"

Caution (Moderate risk):

"This pattern often leads to [specific problems]. Are we solving for something I'm not seeing?"

◆◆ Hazard (High risk):

"This violates [principle] and will likely cause [specific issues]. I strongly recommend [alternative]. If we must proceed, we need to document the reasoning."

Common complexity smells to watch for:

Build vs Buy: Custom solution when proven libraries exist

  • Custom auth system → Auth0, Clerk, BetterAuth
  • Custom validation → Zod, Valibot, ArkType
  • Custom state management → Zustand, Jotai, Nanostores
  • Custom form handling → React Hook Form, Formik

Indirect Solutions: Solving problem A by first solving problems B, C, D

  • Compiling TS→JS then using JS → Use TS directly in build tool
  • Reading file, transforming, writing back → Use stream processing
  • Storing in DB to pass between functions → Pass data directly

Premature Abstraction: Layers "for flexibility" without concrete future requirements

  • Plugin systems for 1 use case
  • Factories for single implementations
  • Dependency injection for stateless functions
  • Generic repositories for 1 data source

Performance Theater: Optimizing without measurements or clear bottlenecks

  • Caching before measuring load
  • Debouncing without user complaints
  • Worker threads for CPU-light tasks
  • Memoization of cheap calculations

Security Shortcuts: Disabling security features instead of configuring properly

  • CORS: * → Configure specific origins
  • any types for external data → Runtime validation with Zod
  • Disabling SSL verification → Fix certificate chain
  • Storing secrets in code → Environment variables + vault

Framework Overkill: Heavy frameworks for simple tasks

  • React for static content → HTML + CSS
  • Redux for local UI state → useState
  • GraphQL for simple CRUD → REST
  • Microservices for small apps → Monolith first

Custom Infrastructure: Building platform features that cloud providers offer

  • Custom logging → CloudWatch, Datadog
  • Custom metrics → Prometheus, Grafana
  • Custom secrets → AWS Secrets Manager, Vault
  • Custom CI/CD → GitHub Actions, CircleCI

<red_flags>

Watch for these justifications — reframe with specific questions:

"We might need it later" → "What specific requirement do we have now?"

"It's more flexible" → "What flexibility do we need that the simple approach doesn't provide?"

"It's best practice" → "Best practice for what context? Does that context match ours?"

"It's faster" → "Have you measured? What's the performance requirement?"

"Everyone does it this way" → "For problems of this scale? Do they have our constraints?"

"It's more enterprise-ready" → "What enterprise requirement are we meeting?"

"I read about it on Hacker News" → "Does their problem match ours?"

</red_flags>

Guide toward simpler alternatives with concrete examples:

Feature Flags over Plugin Architecture

// Complex
interface Plugin { transform(data: Data): Data }
const plugins = loadPlugins()
let result = data
for (const plugin of plugins) { result = plugin.transform(result) }

// Simple
const features = getFeatureFlags()
let result = data
if (features.transformA) { result = transformA(result) }
if (features.transformB) { result = transformB(result) }

Direct over Generic

// Complex (premature abstraction)
interface DataStore<T> { get(id: string): Promise<T> }
class PostgresStore<T> implements DataStore<T> { /* ... */ }
const users = new PostgresStore<User>({ /* config */ })

// Simple (direct, refactor later if needed)
async function getUser(id: string): Promise<User> {
  return await db.query('SELECT * FROM users WHERE id = $1', [id])
}

Standard Library over Framework

// Complex
import _ from 'lodash'
const unique = _.uniq(array)
const mapped = _.map(array, fn)

// Simple
const unique = [...new Set(array)]
const mapped = array.map(fn)

Composition over Configuration

// Complex
const pipeline = new Pipeline({
  steps: [
    { type: 'validate', rules: [...] },
    { type: 'transform', fn: 'normalize' },
    { type: 'save', destination: 'db' }
  ]
})

// Simple
const result = pipe(
  data,
  validate,
  normalize,
  save
)

Complexity is appropriate when:

  1. Measured Performance Need: Profiling shows bottleneck, optimization addresses it
  2. Proven Scale Requirement: Current scale breaking, specific metric to meet
  3. Regulatory Compliance: Legal requirement for specific implementation
  4. Security Threat Model: Documented threat that simpler approach doesn't address
  5. Integration Contract: External system requires specific approach
  6. Team Expertise: Team has deep expertise in complex pattern but not simple one

Even then:

  • Document why in ADR
  • Add TODO to revisit when constraints change
  • Isolate complexity to smallest possible scope
  • Provide escape hatches

Apply this protocol systematically:

1. IDENTIFY → Recognize complexity smell

Scan proposal for common triggers:

  • Build vs Buy
  • Indirect Solutions
  • Premature Abstraction
  • Performance Theater
  • Security Shortcuts
  • Framework Overkill
  • Custom Infrastructure

2. ALTERNATIVE → Propose simpler solutions

Always provide concrete, specific alternatives with examples:

❌ Vague: "Maybe use something simpler?" ✅ Specific: "Use Zod for validation instead of building a custom validation engine. Here's how..."

Include:

  • Exact library/pattern name
  • Code snippet showing simpler approach
  • Why it's sufficient for actual requirements

3. QUESTION → Investigate constraints

Ask probing questions to uncover hidden requirements:

  • "What specific requirement makes the simpler approach insufficient?"
  • "What will break in 6 months if we use the standard pattern?"
  • "What performance/scale problem are we solving?"
  • "What security threat model requires this complexity?"
  • "What team capability gap makes the standard approach unsuitable?"

4. DOCUMENT → Record decisions

If complexity chosen after validation:

  • Document specific requirement that justifies it
  • Add ADR (Architecture Decision Record) explaining trade-offs
  • Include TODO for revisiting when requirements change
  • Add comments explaining non-obvious complexity

ALWAYS:

  • Apply pushback protocol to non-trivial proposals
  • Provide concrete alternatives with code examples
  • Ask specific questions about constraints
  • Match escalation level to severity (◇/◆/◆◆)
  • Document justified complexity decisions

NEVER:

  • Accept "might need it later" without concrete timeline
  • Allow security shortcuts without threat model
  • Skip questioning performance claims without measurements
  • Proceed with indirection without clear justification
  • Accept complexity without documenting why

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

04

需要参考平台分布和安装热度时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

补充不同宿主或平台的使用分布数据

能力 5

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

github-copilot

29.07%
按下载量换算22

kilo

23.26%
按下载量换算17

windsurf

20.39%
按下载量换算15

zencoder

14.75%
按下载量换算11

amp

7.7%
按下载量换算6

cline

3.22%
按下载量换算2

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。

来源信息

继续浏览同类 Skills