Agent skill

System Change Engineering

by bytedance in bytedance/deer-flow

Evaluates and carries out non-trivial software changes from first principles: ground the problem, name real consumers, choose the smallest sufficient solution and require evidence.

MITAuto-check passedDevelopment

Install System Change Engineering

skills CLI
$ npx skills add bytedance/deer-flow --skill engineer-system-change -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install bytedance/deer-flow engineer-system-change --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/bytedance/deer-flow.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agent/skills/engineer-system-change .claude/skills/engineer-system-change && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
engineer-system-change
GitHub stars
84k
Token cost
~2.5k tokens
SKILL.md length
1,268 words
Files
1
Skills in repo
23
Repo updated
First seen
Licence
MIT

At a glance

Evaluates and carries out non-trivial software changes from first principles: ground the problem, name real consumers, choose the smallest sufficient solution and require evidence.

  • Works in 6 steps: Ground the Problem → Name Semantic Consumers → Choose the Smallest Sufficient Change → …
  • Assessing an RFC, design or feature proposal before building it
  • SKILL.md covers Preserve the Task Boundary, Apply the Decision Gates, Use Explicit Verdicts and Keep the Output Proportional
  • Instructions only: no scripts, shell commands, URLs or credentials in SKILL.md

What it does

Every proposed change is treated as a hypothesis about a real system, not a checklist. The agent keeps the task boundary clear: an assessment or plan changes nothing in the project or external state, implementation passes the decision gates first and is verified afterward, and permission to implement is separate from permission to commit, push, deploy, publish or update issues. It inspects the current revision and discussion instead of trusting a stale checkout or an RFC alone, and separates verified facts, inferences and unknowns.

The first gate grounds the problem by tracing the current workflow or code path, stating the undesirable behavior and the outcome that should replace it, checking whether the existing system or procedure already solves it, and listing adjacent paths and workarounds. An absent field or interface counts as an observation, not proof of a requirement, and the result can be STOP or NEEDS_EVIDENCE.

The second gate names semantic consumers for every proposed durable field, event, API, table, store, module, service or workflow, asking who produces it, which named caller reads it, what behavior changes after consumption and where production reaches it. The description adds choosing the smallest sufficient solution, rejecting pseudo-requirements and speculative abstractions, and requiring evidence proportional to risk. It is not for mechanical edits, code explanation or reviewing a finished diff.

When your agent uses it

  • Assessing an RFC, design or feature proposal before building it
  • Judging whether a new field, event or API has a real consumer
  • Planning a migration, dependency change or refactor that needs rollback thinking

Example prompts

  • “Assess this RFC for a new webhook event and tell me who would consume it.”
  • “Evaluate whether we need the proposed audit log table or if existing logs already cover it.”
  • “Plan the dependency upgrade from first principles and say what evidence we need before merging.”

Workflow steps

6 steps, taken from the step headings in SKILL.md.

  1. Ground the Problem
  2. Name Semantic Consumers
  3. Choose the Smallest Sufficient Change
  4. Map Consequences and Verification Proportionally
  5. Implement Only the Justified Slice
  6. Prove the Result

What it can do on your machine

Read from SKILL.md and the folder at commit 5ecc1c2. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    No scripts in the folder and no shell commands in SKILL.md.

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    No URLs in SKILL.md.

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

System Change Engineering loads about 2.5k tokens when it runs. Until then it costs about 167 tokens; SKILL.md has 1,268 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~167
When it runs · the whole SKILL.md, loaded when a task matches
~2.5k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.

SKILL.md

The full file from bytedance/deer-flow at commit 5ecc1c2, republished under its MIT licence (© bytedance). 1,268 words, ~2,459 tokens.

Download SKILL.mdSave it as .claude/skills/engineer-system-change/SKILL.md (or your agent's skills folder).
name
engineer-system-change
description
Evaluate and carry out non-trivial software-system changes from first principles. Use when assessing RFCs, issues, designs, features, refactors, migrations, dependency changes, or proposed fields, events, APIs, modules, and services whose need, consumers, system fit, validation, or rollback require scrutiny. Read the actual system, identify the concrete problem and named semantic consumers, choose the smallest sufficient solution, reject pseudo-requirements and speculative abstractions, and require evidence proportional to risk. Do not use for mechanical edits, source-code explanation, or a dedicated review of an already-complete diff.

Engineer System Change

Treat every proposed change as a hypothesis about a real system, not as an implementation checklist. Establish whether the change should exist before designing or building it, then keep the solution and the process proportional to the risk.

Preserve the Task Boundary

  • If asked only to assess, review, or plan, make no project or external-state changes.
  • If explicitly asked to implement, including after an assessment, pass the decision gates before editing and verify the result afterward.
  • Treat implementation permission as separate from permission to commit, push, deploy, publish, or update issues and pull requests.
  • If repository truth matters, inspect the current target revision and relevant discussion. Do not rely on a stale checkout, an RFC alone, or remembered architecture.
  • Separate verified facts, inferences, and unknowns. Do not turn missing evidence into a confident conclusion.

Apply the Decision Gates

1. Ground the Problem
  • Trace the current user workflow, failure, or code path before proposing a solution.
  • State the undesirable observable behavior and the invariant or outcome that should replace it.
  • Identify who is affected and which concrete decision or action changes.
  • Check whether the existing system, configuration, documentation, or operating procedure already solves the problem.
  • Enumerate adjacent product paths and workarounds, not only the proposed target surface. Explain precisely which accepted outcome each alternative fails; do not claim “the only option” from one missing UI control or code path.
  • Treat an absent field, interface, abstraction, or standard as an observation, not proof of a requirement.

Return STOP only when evidence affirmatively shows that no change is needed or the affected workflow already achieves the outcome. Return NEEDS_EVIDENCE when an unverified fact prevents the decision.

2. Name Semantic Consumers

For every proposed durable field, event, API, table, store, module, service, or workflow, establish:

QuestionRequired answer
Producer or lifecycle ownerWhat creates, updates, or owns it?
Committed consumerWhich named caller, component, operator, or user reads or acts on it now or as part of this same accepted slice?
Semantic useWhat behavior, decision, or externally visible result changes after consumption?
Reachable pathWhere does production reach consumption in the current system or proposed slice?
Absence testWhich verified scenario or accepted outcome fails if the addition is removed?

Accept a proposed consumer only when it is tied to a verified current need and committed integration in the same change. Do not accept a roadmap, possible future evaluator, generic read/debug API, storage alone, or “future flexibility” as a semantic consumer. If an addition has no such consumer, remove or defer it. Treat a public or externally consumed contract as a compatibility boundary even when no in-repository caller is visible. Absence of a discoverable caller is uncertainty, not proof that no consumer exists.

3. Choose the Smallest Sufficient Change

Consider solutions in this order and stop at the first one that fully satisfies the verified outcome and invariants without shifting disproportionate recurring cost, coupling, or risk downstream:

  1. No product or code change
  2. Documentation, configuration, or operating procedure
  3. Reuse an existing capability
  4. Make a local behavior fix
  5. Extend an existing abstraction
  6. Introduce a new abstraction
  7. Introduce a new subsystem or migration path
  • Minimize concepts, states, interfaces, irreversible decisions, and maintenance surface, not literal line count.
  • Require a second current consumer, a demonstrated variation, or a hard boundary before generalizing a local solution.
  • Prefer independently reversible slices over a comprehensive architecture rollout.
  • Distinguish a real problem from an oversized solution. A valid verdict is: “The problem is real; reduce the proposal to this smaller change.”
  • Apply these gates recursively to your own recommendation. Do not propose a new field, contract, abstraction, migration, or validation system without naming its consumer, checking existing mechanisms, and showing why a smaller change is insufficient.
4. Map Consequences and Verification Proportionally

Inspect only relevant dimensions, but do not omit a dimension merely because the proposal omits it:

  • callers and downstream consumers
  • API, data, event, and UI contracts
  • authorization, ownership, privacy, and trust boundaries
  • persistence, migrations, replay, and side effects
  • concurrency, ordering, retries, idempotency, and failure recovery
  • compatibility, dependencies, performance, deployment, and operations
  • observability and rollback

For state replay or retry features, explicitly distinguish restored application state from external side effects that cannot be undone. Label material risk claims as VERIFIED, INFERENCE, or UNKNOWN. Use an inference to request a focused check, not to require new architecture as though the claim were already proven. Evidence labels classify individual claims; verdicts classify the overall decision. An UNKNOWN requires NEEDS_EVIDENCE only when the unknown blocks a material decision.

Before implementation, require observed evidence for the current-system claims that justify the decision and a proportional, executable verification plan. Treat proposed checks as a verification plan, not observed evidence.

Show full SKILL.md (484 more words)Show less
5. Implement Only the Justified Slice

When implementation is authorized:

  • Reproduce the baseline first. Encode it as a failing behavioral test when executable; otherwise state why and record a reproducible check.
  • Change only the paths required by the accepted outcome and consumers.
  • Reuse existing execution paths and contracts when they preserve the required semantics.
  • Avoid speculative compatibility layers, selectors, shadow systems, canaries, or dual stacks unless an irreversible or high-risk transition requires them.
  • Update repository guidance only when architecture, commands, or durable conventions actually change.
6. Prove the Result
  • Map each important result claim to observed evidence: tests, contract checks, static analysis, runtime traces, benchmarks, or a reproducible manual check.
  • Do not use the agent's own summary as proof.
  • Verify negative boundaries and failure behavior, not only the happy path.
  • State what remains unverified and how that uncertainty affects the verdict.
  • Use focused regression checks for local reversible changes.
  • Add targeted integration and adversarial checks for contract, persistence, security, concurrency, replay, or cross-component changes.
  • Require a production-like rehearsal plus executable containment or rollback for irreversible changes or materially high-risk external side effects.

Use Explicit Verdicts

  • STOP: evidence affirmatively shows that no current change is needed, or that existing capability already achieves the accepted outcome.
  • REDUCE: the problem is real, but the proposed scope or abstraction exceeds the evidence.
  • REVISE: the problem and approximate scope are justified, but a correctness, contract, or failure-semantics defect must change before proceeding.
  • PROCEED: the problem, consumers, minimum solution, consequences, and proportional verification plan are sufficiently established.
  • NEEDS_EVIDENCE: a decision would be guesswork until a specific fact, code path, incident, or consumer is verified.

Do not force a binary approve/reject judgment when evidence is incomplete. Choose the verdict from the condition blocking the earliest gate, not from the gate number: affirmative evidence that no change is needed maps to STOP; a decision-blocking unknown maps to NEEDS_EVIDENCE; a real problem with unsupported scope or no committed consumer maps to REDUCE; and a confirmed correctness, contract, or failure-semantics defect maps to REVISE. Use PROCEED only when no gate is blocked. When more than one condition applies, give one primary verdict and list the other required changes without inventing a compound status. A verdict records the decision gate and never expands authorization. After authorized implementation, separately report the implemented slice, observed verification, and remaining uncertainty.

Keep the Output Proportional

For a simple change, report only:

  1. Problem and desired behavior
  2. Named semantic consumer
  3. Smallest sufficient change
  4. Observed evidence and, before implementation, the verification plan
  5. Verdict

For a cross-boundary change or RFC, add:

  • verified current-system facts
  • existing alternatives and why they do not meet the accepted outcome
  • consumer ledger for proposed additions
  • affected contracts and side effects
  • rejected or deferred scope with reasons
  • failure, observation, and rollback strategy

Do not create ceremonial documents or exhaustive matrices when a short evidence-backed answer is sufficient. The workflow itself must not become overengineering.

© bytedance, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

Just SKILL.md in .agent/skills/engineer-system-change of bytedance/deer-flow.

Open the folder on GitHubat commit 5ecc1c2

Compare with similar skills

System Change Engineering next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

System Change Engineering compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
System Change Engineering this skillbytedance/deer-flow84k—~2.5kAutomated safety check: PassMIT
Migrate Core Code to Submodulestinyhumansai/openhuman42k—~2.6kAutomated safety check: PassGPL-3.0
ast-grep Structural Searchcode-yeongyu/oh-my-openagent70k—~3.3kAutomated safety check: PassMIT
Architecture PatternsKartikLabhshetwar/better-shot2.4k2 repos~1.4kAutomated safety check: PassCustom licence
ast-grep Codemod Referencewarp-drive-data/warp-drive3.2k—~2.6kAutomated safety check: PassMIT
Brooks Audithyhmrright/brooks-lint1.5k1 repos~537Automated safety check: PassMIT

Similar skills

  • Migrate Core Code to Submodules

    tinyhumansai/openhuman

    Plans and carries out moving non-host-specific code and its tests from the OpenHuman core into vendored tiny submodule libraries, then releases the submodule and re-pins the host.

    42k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • ast-grep Structural Search

    code-yeongyu/oh-my-openagent

    Searches and rewrites code by syntax-tree shape across 25 languages with ast-grep, for codemods, structural queries and YAML lint rules, using a Python wrapper script.

    70k GitHub stars~3.3k tokensUpdated today
    DevelopmentAuto-check passed
  • Architecture Patterns

    KartikLabhshetwar/better-shot

    Deep dive into software architecture for macOS. An agent skill from KartikLabhshetwar/better-shot.

    2.4k GitHub starsUsed in 2 repos~1.4k tokens
    DevelopmentAuto-check passed
  • ast-grep Codemod Reference

    warp-drive-data/warp-drive

    Reference for writing and debugging TypeScript and JavaScript codemods with @ast-grep/napi: parsing, node queries, meta-variables, rule objects and editing.

    3.2k GitHub stars~2.6k tokensUpdated today
    DevelopmentAuto-check passed
  • Brooks Audit

    hyhmrright/brooks-lint

    Architecture audit that maps module dependencies, checks layering integrity, and flags structural decay across a codebase, drawing on twelve classic engineering books.

    1.5k GitHub starsUsed in 1 repo~537 tokens
    DevelopmentAuto-check passed
  • Hai Ast Grep

    hylarucoder/hai-stack

    Produces a ready-to-run ast-grep command or reusable YAML lint/codemod rule, validated against positive and negative fixtures.

    383 GitHub stars~1.5k tokensUpdated 4 days ago
    DevelopmentAuto-check passed

More from bytedance/deer-flow

All 23 skills in this repo
  • Vercel Deploy

    bytedance/deer-flow

    Deploys a project to Vercel with one script and no login, then returns a live preview URL and a claim link for moving the deployment into your own Vercel account.

    84k GitHub starsUsed in 10 repos~797 tokens
    Auto-check passed
  • Chart Visualization

    bytedance/deer-flow

    Picks a suitable chart type from 26 options for your data, maps the data to that chart's parameters and generates a chart image through a JavaScript script.

    84k GitHub starsUsed in 2 repos~840 tokens
    Auto-check passed
  • GitHub Deep Research

    bytedance/deer-flow

    Researches a GitHub repository over four rounds using the GitHub API and web search, then writes a structured markdown report with timeline, metrics and Mermaid diagrams.

    84k GitHub starsUsed in 4 repos~1.3k tokens
    Auto-check passed
  • Excel and CSV Data Analysis

    bytedance/deer-flow

    Analyzes uploaded Excel and CSV files with SQL through DuckDB, producing schema inspections, statistical summaries and exports to CSV, JSON or Markdown.

    84k GitHub starsUsed in 4 repos~2.2k tokens
    Auto-check passed
  • Structured Image Generation

    bytedance/deer-flow

    Turns an image request into a structured JSON prompt and runs a bundled Python script to generate the picture, optionally guided by reference images.

    84k GitHub starsUsed in 4 repos~2.9k tokens
    Auto-check passed
  • DeerFlow Smoke Test

    bytedance/deer-flow

    Walks through an end-to-end smoke test of a DeerFlow deployment: pull the latest code, deploy with Docker or locally, verify services, run health checks and write a report.

    84k GitHub stars~2.5k tokensUpdated today
    Auto-check: notes

Questions about System Change Engineering

What does System Change Engineering do?

Evaluates and carries out non-trivial software changes from first principles: ground the problem, name real consumers, choose the smallest sufficient solution and require evidence. Every proposed change is treated as a hypothesis about a real system, not a checklist. The agent keeps the task boundary clear: an assessment or plan changes nothing in the project or external state, implementation passes the decision gates first and is verified afterward, and permission to implement is separate from permission to commit, push, deploy, publish or update issues.

When should I use System Change Engineering?

System Change Engineering fits situations like: assessing an RFC, design or feature proposal before building it; judging whether a new field, event or API has a real consumer; planning a migration, dependency change or refactor that needs rollback thinking.

How do I install System Change Engineering in Claude Code?

Run `npx skills add bytedance/deer-flow --skill engineer-system-change -a claude-code`. Or copy the skill folder (.agent/skills/engineer-system-change in bytedance/deer-flow) into .claude/skills/engineer-system-change in your project. Claude Code loads it when a task matches its description.

How do I install System Change Engineering in Codex?

Run `npx skills add bytedance/deer-flow --skill engineer-system-change -a codex`. Or copy the skill folder (.agent/skills/engineer-system-change in bytedance/deer-flow) into .agents/skills/engineer-system-change in your project. Codex loads it when a task matches its description.

Can I use System Change Engineering in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add bytedance/deer-flow --skill engineer-system-change -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/engineer-system-change, .gemini/skills/engineer-system-change, .github/skills/engineer-system-change and .opencode/skills/engineer-system-change in your project.

What does System Change Engineering need to run?

SKILL.md names no scripts, command-line tools or credentials: System Change Engineering is instructions for the agent only.

Does System Change Engineering access the network?

SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.

Is System Change Engineering safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.

What licence does System Change Engineering use?

System Change Engineering is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does System Change Engineering use?

About 2.5k tokens (SKILL.md is roughly 9.8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to System Change Engineering?

Skills that share tags, products or a category with System Change Engineering: Migrate Core Code to Submodules (tinyhumansai/openhuman, 42k stars), ast-grep Structural Search (code-yeongyu/oh-my-openagent, 70k stars), Architecture Patterns (KartikLabhshetwar/better-shot, 2.4k stars) and ast-grep Codemod Reference (warp-drive-data/warp-drive, 3.2k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains System Change Engineering?

bytedance (a GitHub organization) maintains it in bytedance/deer-flow, which has 83,561 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on October 9, 2026.

Source: bytedance/deer-flow on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.