Skip to content

docs(openspec): propose customizable keymap UI#117

Open
criscool wants to merge 2 commits into
floatboatai:mainfrom
criscool:docs/openspec-customizable-keymap
Open

docs(openspec): propose customizable keymap UI#117
criscool wants to merge 2 commits into
floatboatai:mainfrom
criscool:docs/openspec-customizable-keymap

Conversation

@criscool

@criscool criscool commented Jul 3, 2026

Copy link
Copy Markdown

Summary / 摘要

OpenSpec proposal for a user-overridable keybinding API on EditorAPI, unblocking Roadmap #14 (Custom keymap UI). Proposal only — no implementation code.

Motivation / 背景与动机

Nexus currently has three unrelated shortcut surfaces (NexusPlugin.shortcuts, EditorCommand.hotkey, plugin cmExtensions direct injection) with no discovery / override / persistence contract. Following CONTRIBUTING.md §3.1: new public capability → OpenSpec proposal required before implementation.

Companion implementation PR will be opened right after this one (branch feat/core-editor-apis), so reviewers can see the proposal and its execution together.

Changes / 变更内容

  • openspec/changes/add-customizable-keymap-ui/:
    • proposal.md — Why / What / Impact
    • tasks.md — 5-phase implementation checklist
    • design.md — Context / Goals / 4 key decisions with alternatives / Risks / Migration / Open Questions
    • specs/editor-core/spec.mdADDED Requirements: User-overridable keybindings with 9 scenarios covering discovery, rebinding, unbinding, restore, conflicts, unknown-id tolerance, initial hydration

Testing / 测试

N/A — proposal-only PR. Implementation coverage lives in the companion PR.

Compliance / 合规自检

  • CLA signed (first-time contributor via CLA bot)
  • AI disclosure: proposal wording refined with AI assistance; the technical decisions (two-layer override model, id format, conflict surfacing policy, non-goals) are mine.
  • No new dependencies
  • No build artifacts / secrets committed

Checklist / 自检清单

  • Title follows Conventional Commits (docs(openspec): ...)
  • Follows OpenSpec three-stage workflow (Stage 1: create proposal)

Precedent for proposal-only PR: #15 docs(openspec): propose cloud storage interface.

@CLAassistant

CLAassistant commented Jul 3, 2026

Copy link
Copy Markdown

CLA assistant check
All committers have signed the CLA.

@redreamality redreamality left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Reviewed PR #117.

This is a documentation-only OpenSpec proposal for customizable keymap UI. The scope is appropriately narrow and matches the expected proposal structure:

  • proposal.md explains why customizable keybindings are needed.
  • design.md covers registry / override-layer / persistence / conflict-detection considerations.
  • specs/editor-core/spec.md defines expected editor-core behavior.
  • tasks.md breaks the implementation into reviewable phases.

Validation notes:

  • CLA is passing.
  • The PR only adds OpenSpec documentation and does not touch runtime code.
  • I also reviewed the related implementation PR #118; this proposal is useful as a standalone design artifact even if implementation details need to be reviewed separately.

Conclusion: approved from OpenSpec/proposal review perspective.

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.

3 participants