Skip to content

Progress map: adopt the host strategy (patch kind, kilo_port proof, landed-by-rung, ratchets) #15230

Open

Description

@marius-kilocode

Part of #13750. Strategy: migration-tracking/plans/v2-host-strategy.md section 8 (#15228). Map: migration-tracking/progress/README.md, generator script/upstream/progress.ts (#15138, #15145).

Problem

The progress map was built before the host strategy. A v1 patch cell closes only when a v2 kilocode_change(<feature>:<id>) marker carries its ID, and markers are allowed only in shared upstream files (rungs 3 and 4). Under the host strategy most v1 patches become plugin hooks in Kilo-owned files (rung 1), where markers are forbidden, so those cells can never close. The map also calls these cells "hooks", which collides with plugin hooks, and it does not show where a done cell landed or the two numbers the strategy ratchets.

Scope

  1. Rename the cell kind hook to patch: Kind in progress.ts, progress.json, README terms and counting rules, .kilo/skills/v2-migration/SKILL.md text. Cell IDs stay hook:<feature>:<hash> only if renaming them would break existing markers; otherwise rename with a one-time mapping and say so.
  2. Second done-proof for Kilo-owned files: // kilo_port(<feature>:<id>). The generator scans Kilo-owned paths for it exactly as it scans shared files for tagged markers; unknown IDs fail the run; a cell proved by both is reported once. Remove the temporary state: "ported" bridge from the skill text when this lands.
  3. Landed-by-rung: for each done patch cell, record rung 1 or 2 when the proof is in a Kilo-owned path, rung 3 or 4 when it is a marker in a shared file (rung from script/upstream/shared-patches.json). Show per feature (landed: 31 plugin, 2 seam, 1 patch) and as a view in the README and the treemap legend.
  4. Two ratcheted numbers in the summary, progress.json and the PR comment: distinct core-internal upstream modules imported by Kilo packages (adapters; logic packages packages/kilo-*-core must be zero and fail the check otherwise), and shared patches by rung (from shared-patches.json). Mirrored files join when mirroredFiles exists in the sync tooling.
  5. Placement line in the PR comment, derived from the PR diff: new marked lines in shared files by rung, new kilo_port annotations, new core-internal imports.

Acceptance

  • bun script/upstream/progress.ts is deterministic and --check passes; bun test in script/upstream passes with tests for kilo_port parsing, landed-by-rung attribution and the import count.
  • A kilo_port(<feature>:<id>) placed on a Kilo-owned file closes the cell; a wrong ID fails the run.
  • The README shows per-feature landed-by-rung and the two ratchets; the PR comment shows the placement line on the PR that implements this.
  • No cell changes state because of the rename alone (compare progress.json before and after).

Out of scope

Client views (VS Code first) and the facade decision input; the sync impact report and mirrored-file drift check (U-L3-01 follow-ups); re-pinning the v1 target.

Metadata

Metadata

Assignees

No one assigned

    Labels

    V2Opencode v2 merge

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions