Skip to content
cccskills
FreePublished on GitHub

kilocode-merge-minimizer

Keep Kilo-specific changes small in files shared with upstream OpenCode. The skill guides where to place custom logic and tests, how to mark changes, and how to check annotations while preserving behavior.

OriginalShow the original description

Use when changing shared upstream-owned files to add Kilo-specific behavior, editing `kilocode_change` markers in shared code, or moving additive behavior out of shared code to reduce upstream merge conflicts. Do not use for changes confined to Kilo-owned paths such as `packages/kilo-vscode/` or `packages/kilo-ui/`.

See how to install

Good for

  • Add Kilo-specific features to shared upstream code
  • Move additive logic into Kilo-owned files
  • Clean up outdated or overly broad change markers
  • Check annotations after editing shared files

Files included (1)

  • SKILL.md6.4 KB

SKILL.md (original)

Review the instructions the agent will receive before you install.

Kilo Merge Minimizer

Use this skill whenever a normal development task touches shared upstream-owned code and includes Kilo-specific behavior, especially for marker cleanup, extraction work, or kilocode_change annotations.

Do not use this skill when all changes are confined to Kilo-owned paths, including packages/kilo-vscode/, packages/kilo-ui/, and paths with kilocode in their name. Those files are not merged from upstream and do not need merge-minimization guidance. If a task also touches shared upstream-owned code, use this skill for the shared portion only.

Do not use this as the primary guide for upstream merge resolution. Upstream merges have their own instructions and should not duplicate that workflow here.

Goal

Minimize Kilo's long-term diff against upstream OpenCode while preserving behavior.

Prefer this shape for Kilo-specific additions:

  1. Shared upstream file contains only a minimal hook, import, call, registration, or config entry.
  2. Kilo-specific behavior lives in Kilo-owned code.
  3. Unavoidable shared-file changes have narrow kilocode_change markers.
  4. The annotation checker passes.

For changes to existing upstream behavior, prefer the smallest in-place shared-file diff with narrow markers. Do not move changed upstream logic into Kilo-owned code just to avoid textual conflicts, because that can create harder semantic merge conflicts.

Core Rules

  • Use script/check-opencode-annotations.ts as the source of truth for current shared scopes and exempt paths.
  • Use script/upstream/fix-kilocode-markers.ts for stale or broad markers, inspecting --dry-run output before applying changes.
  • Treat upstream-owned files as shared unless the checker or repo ownership rules exempt them.
  • Put Kilo-owned UI, CLI, runtime logic, and tests in Kilo-owned paths where practical.
  • Avoid adding Kilo business logic directly to shared files.
  • Keep shared-file edits as close as possible to upstream shape.
  • Do not change shared files unless the change is required for Kilo functionality, fixes a Kilo bug, or is a minimal targeted upstream-quality fix.
  • Do not create a large Kilo-only fork for a general upstream-quality improvement. Prefer a minimal targeted fix, or leave the broader change for upstream.
  • Do not duplicate upstream logic unless there is a concrete reason. If duplication is unavoidable, isolate the Kilo delta and keep the upstream dependency obvious.

Shared File Structure

  • Do not refactor, rename, split files, or extract helpers in shared files just to improve readability or make Kilo extraction cleaner.
  • Avoid structural changes that make upstream behavior harder to compare or hide semantic dependency on upstream code.

Shared File Style

  • Preserve upstream formatting and import style in shared files, even when it differs from Kilo style.
  • Put Kilo-only imports on separate marked lines instead of reorganizing upstream imports.

Decision Rules

Extract Kilo logic when:

  • The change is an additive Kilo feature or integration, not a modification of existing upstream behavior.
  • The shared-file change has meaningful Kilo-owned behavior, not just a tiny condition, import, registration, or field.
  • The code has loops, branching, error handling, async workflows, storage access, network calls, UI rendering, or telemetry.
  • The shared file can become a small orchestrator that calls Kilo helpers.
  • The Kilo code is independent enough that extraction will not hide future upstream fixes or behavior changes.

Keep the change inline when:

  • The Kilo delta is a single field, import, call, simple condition, or small registry entry.
  • Extraction would reshape upstream code more than the Kilo change itself.
  • The change modifies an upstream algorithm, ordering, heuristic, control flow, or bug fix.
  • Extraction would duplicate upstream logic or hide semantic dependency on upstream behavior.
  • The Kilo helper closes over upstream-local state. Keep closure-scoped helpers inline and contiguous in one narrow marker block.
  • The shared file owns the only route table, enum, schema, switch, or registry where the hook must exist.
  • The change restores upstream shape or removes a stale Kilo divergence.

Always preserve upstream behavior order unless the Kilo behavior change is intentional and tested.

Marker Rules

  • Mark only Kilo-specific diff lines in shared upstream files.
  • Prefer inline markers for single-line changes: const value = 42 // kilocode_change.
  • Use block markers only for adjacent Kilo-specific lines:
// kilocode_change start
registerKiloFeature(app)
// kilocode_change end
  • Use the file's native comment style, including JSX block comments inside JSX and # comments for YAML, TOML, and shell.
  • Do not add markers in checker-exempt Kilo-owned paths.
  • Remove stale markers when upstream already contains the behavior or when touching Kilo-owned files that still have old markers.
  • Use // kilocode_change - new file only for unavoidable new Kilo-specific files inside shared upstream paths.

Tests

  • Put Kilo-specific CLI/runtime tests in Kilo-owned test paths.
  • Move tests out of shared upstream test paths when the behavior under test is Kilo-specific.
  • Tests should cover the real failing path, not private or unstable APIs chosen only for convenience.
  • Do not add skip gates for required regression coverage.

Verification

After editing shared files or marker comments, run:

bun run script/check-opencode-annotations.ts --worktree

If checking committed PR changes against a non-default comparison base, pass the correct base ref without --worktree:

bun run script/check-opencode-annotations.ts --base <base-ref>

For stale or broad markers in one shared file, inspect the dry run before applying:

bun run script/upstream/fix-kilocode-markers.ts <repo-relative-file> --dry-run

Before finishing, confirm:

  • Shared files contain minimal integration points only.
  • Kilo logic and tests live in Kilo-owned paths where practical.
  • Markers are narrow.
  • Stale markers are removed.
  • The annotation checker passed, or the reason it could not run is reported.

Reviews

No reviews yet. Tell others what you thought.

Comments

No login needed. Share how it worked for you, ask a question, or note where it did not run.

No comments yet. Be the first to write one.

Comments are published right away. Do not include personal information such as email addresses or phone numbers. Up to 2 URLs.

0 / 1,000 characters

This form is protected by reCAPTCHA, and the Google Privacy Policy and Terms of Service apply.

More skills from this repository

chart

FreeSummary

Creates charts from numerical data using the chart tool and Chart.js v4. Supports bars, lines, pies, scatter plots, and other formats to show comparisons, trends, proportions, and relationships, with options for dataset colors and mixed charts.

  • Comparing values across categories with a bar chart
  • Showing monthly changes with a line chart
  • Displaying proportions with a pie or doughnut chart
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

effect

FreeSummary

Develop TypeScript services and workflows with Effect v4 by checking its source and existing project examples. Guides data schemas, typed errors, explicit dependencies, and tests that follow the project's established patterns.

  • Implementing services with Effect v4
  • Defining data schemas and typed errors
  • Organizing dependencies and HTTP handlers
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

gh-issues

FreeSummary

Create and manage GitHub issues for the Kilo VS Code extension or JetBrains plugin using gh, GitHub's command-line tool. Guides template selection, clear titles, required project board assignment, and authentication permissions.

  • Reporting a bug in the VS Code extension
  • Requesting a feature for the JetBrains plugin
  • Filing usage or design questions
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

icon-jetbrains

FreeSummary

Create and review SVG icons for IntelliJ New UI. Choose sizes by interface role, prepare matching light and dark versions, refine shapes and strokes, and place the assets in the plugin’s resource folders.

  • Creating icons for actions and tool windows
  • Preparing matching light and dark SVG versions
  • Adapting existing icons to a 16×16 canvas
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

icon-vscode

FreeSummary

Create and review icons for Kilo’s VS Code extension and webviews, the extension’s embedded interface panels. Choose existing icons or suitable SVG assets, register them correctly, and check theme appearance and accessible button names.

  • Choosing icons for commands, menus, and view containers
  • Adding icons to webview registries
  • Rescaling SVGs while preserving visual weight
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

jetbrains-arch

FreeSummary

Guides development across the Kilo JetBrains plugin’s shared, frontend, and backend modules. Explains remote calls between modules, UI thread rules, dependency packaging, and testing practices, including serialization failures that require checks in a running IDE.

  • Placing new code in the appropriate plugin module
  • Defining frontend and backend communication
  • Reviewing UI threading and coroutine usage
Kilo-Org/kilocode27.7KUpdated Oct 22, 2026

See all skills by Kilo-Org

Report a problem with this skill