Skip to content

chore: add protocol feature-process skills - #500

Draft
kuruk-mm wants to merge 1 commit into
mainfrom
feat/protocol-feature-skills
Draft

kuruk-mm wants to merge 1 commit into
mainfrom
feat/protocol-feature-skills

Conversation

@kuruk-mm

Copy link
Copy Markdown
Member

Adds a set of Claude Code skills that carry a protocol feature through six phases (need, design, technology verification against unity-explorer / bevy-explorer / godot-explorer, .proto definition, cross-repo implementation, review) with one resumable proposal bundle per feature and a dry-run mode that only writes markdown. /protocol-feature "<idea>" starts a proposal, --draft simulates the whole rollout (the diff, the per-repo briefs, every PR body, the review) without opening anything, and /protocol-review <PR> checks a protocol PR against the SDK and the three engines. The skills bundle the per-repo knowledge that today lives in unity-explorer's docs, godot's PROTOCOL_DEV_WORKFLOW.md and people's heads, plus scripts that pick component ids and field numbers across every branch, open PR and engine copy (the local-tree make check-component-id missed the 1221 collision in #464; scripts/next-component-id.sh --check 1223 reports it taken by #495).

Changes

  • .claude/skills/protocol-feature/ → router skill (the only description the model sees), policy and process references, per-repo references (protocol, sdk, unity, bevy, godot, verification, adr), subsystem → path table, PR-style guide, templates, seven read-only scripts (find-repos, next-component-id, field-numbers, engine-support, consumer-pins, proposal-gate, validate-skills), a worked example bundle, and the evals.
  • .claude/skills/protocol-{propose,tech-check,define,implement,review}/ → one skill per phase, hidden from the model's skill listing (disable-model-invocation: true) and invoked by the router or by /protocol-<phase>.
  • proposals/README.md → what a proposal bundle is and its lifecycle (real features commit their bundle in the protocol PR; simulations stay local).
  • README.md → the "Dev with Decentraland Repositories" section now names the current consumers (unity-explorer, bevy-explorer, godot-explorer, js-sdk-toolchain) and the repin step; CLAUDE.md → one scope note pointing SDK work at the skills.

Policy values in force (references/policy.md): merge gate = every engine accounted for (implementation PR or parity-gap issue) before the protocol PR merges; ADR by size (small none, medium alongside, large before); rollout always lists test scene, docs and sdk-skills (N/A allowed).

QA / Test plan

No QA needed — no behavior change (no .proto touched; make buf-lint && make test green).

Optional verification: open the repo in Claude Code and run /protocol-feature --draft "keep an AvatarShape's emote playing while the scene moves it"; it should write a bundle under proposals/ shaped like .claude/skills/protocol-feature/examples/avatar-shape-keep-emote-on-move/ and open nothing. Scripts: bash .claude/skills/protocol-feature/scripts/next-component-id.sh prints NEXT_SAFE_ID=1226 today; scripts/field-numbers.sh PBAvatarShape prints NEXT_SAFE_FIELD=14 with 13 listed as force_render on experimental-bevy.

How it was tested

Eight hypothetical scenarios (.claude/skills/protocol-feature/evals/evals.json), each run by a fresh agent in dry-run mode and graded on evidence in the produced files: with the skills 49/55 expectations passed in round 1 against 35/55 for the same prompts without them; after two fix rounds the final state passes 54/55 (every scenario at full marks except one benign scratch-file write), including the adversarial ones (a field rename is refused as wire-breaking, id 1223 is rejected because open PR #495 claims it, an existing movePlayerTo.duration is found instead of re-added). Every run was scanned for outward actions (none: no PR, issue, commit, branch or sibling-repo edit). Trigger accuracy of the router description on 20 realistic queries (evals/trigger-eval.json, run through claude -p in this repo): every positive invokes the skill as the first tool call, no near-miss triggers.

Six Claude Code skills that carry a protocol feature through need, design,
engine feasibility (unity-explorer, bevy-explorer, godot-explorer), .proto
definition, cross-repo implementation and review, with one resumable
proposal bundle per feature and a dry-run mode that writes only markdown.
Includes per-repo references, cross-branch id/field-number scripts, a
worked example bundle, evals, and a refreshed README merge-order section.
@github-actions

Copy link
Copy Markdown

Test this pull request

  • The @dcl/protocol package can be tested in scenes by running
    npm install "https://sdk-team-cdn.decentraland.org/@dcl/protocol/branch//dcl-protocol-1.0.0-38103995192.commit-855310f.tgz"

@kuruk-mm
kuruk-mm marked this pull request as draft October 11, 2026 15:15
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant