Skip to content

chore(cmind): rename rpgkit → cmind across CoderMind module#60

Merged
HuYaSen merged 3 commits into
mainfrom
dev/cmind-rename
May 29, 2026
Merged

chore(cmind): rename rpgkit → cmind across CoderMind module#60
HuYaSen merged 3 commits into
mainfrom
dev/cmind-rename

Conversation

@HuYaSen
Copy link
Copy Markdown
Collaborator

@HuYaSen HuYaSen commented May 28, 2026

Surface-only rename to align the CLI command, Python package, and runtime paths with the CoderMind product name. Follow-up to #59 (which renamed RPG-Kit → CoderMind at the directory level only).

Naming map:
rpgkit → cmind (CLI command, slash-command prefix)
rpgkit-cli → cmind-cli (wheel / package name)
rpgkit_cli → cmind_cli (Python import package)
rpgkit-mcp → cmind-mcp (MCP server console script)
.rpgkit/, ~/.rpgkit/ → .cmind/, ~/.cmind/ (runtime directories)
RPGKIT_* → CMIND_* (env vars, constants, gitignore markers)
rpgkit-v* (release tag) → cmind-v*
RPG-Kit → CoderMind (product name in docs/comments)

Scope:

  • .github/workflows/{lint,release,pre-release}.yml + scripts/ dir renamed
  • CoderMind/src/rpgkit_cli/ renamed to cmind_cli/, all imports updated
  • CoderMind/pyproject.toml: package name, console scripts, wheel paths
  • CoderMind/scripts/, tests/, docs/, READMEs (incl. zh/ja/ko/hi)
  • templates/commands/* internal references
  • root README.md install/upgrade snippets + docs/cmind_visualized_graph.png

Breaking change: existing .rpgkit/ workspaces will not be auto-migrated. Users on v0.1.x need to re-run cmind init after upgrading. Historical release tags rpgkit-v0.1.{1..4} are kept; new releases will be tagged cmind-v*.

Verified end-to-end:

  • cmind init/update/version/check smoke-tested in a clean workspace
  • All 13 e2e LLM agent stages PASS (encoder + decoder, parallel=2)
  • Unit tests: 909 pass; 29 pre-existing failures (unrelated to rename, confirmed by comparing against pre-rename main via git stash)

Surface-only rename to align the CLI command, Python package, and
runtime paths with the CoderMind product name. Follow-up to #59
(which renamed RPG-Kit → CoderMind at the directory level only).

Naming map:
  rpgkit                  → cmind          (CLI command, slash-command prefix)
  rpgkit-cli              → cmind-cli      (wheel / package name)
  rpgkit_cli              → cmind_cli      (Python import package)
  rpgkit-mcp              → cmind-mcp      (MCP server console script)
  .rpgkit/, ~/.rpgkit/    → .cmind/, ~/.cmind/    (runtime directories)
  RPGKIT_*                → CMIND_*        (env vars, constants, gitignore markers)
  rpgkit-v* (release tag) → cmind-v*
  RPG-Kit                 → CoderMind      (product name in docs/comments)

Scope:
  - .github/workflows/{lint,release,pre-release}.yml + scripts/ dir renamed
  - CoderMind/src/rpgkit_cli/ renamed to cmind_cli/, all imports updated
  - CoderMind/pyproject.toml: package name, console scripts, wheel paths
  - CoderMind/scripts/, tests/, docs/, READMEs (incl. zh/ja/ko/hi)
  - templates/commands/* internal references
  - root README.md install/upgrade snippets + docs/cmind_visualized_graph.png

Breaking change: existing `.rpgkit/` workspaces will not be auto-migrated.
Users on v0.1.x need to re-run `cmind init` after upgrading. Historical
release tags `rpgkit-v0.1.{1..4}` are kept; new releases will be tagged
`cmind-v*`.

Verified end-to-end:
  - `cmind init/update/version/check` smoke-tested in a clean workspace
  - All 13 e2e LLM agent stages PASS (encoder + decoder, parallel=2)
  - Unit tests: 909 pass; 29 pre-existing failures (unrelated to rename,
    confirmed by comparing against pre-rename main via git stash)
@HuYaSen HuYaSen closed this May 28, 2026
@HuYaSen HuYaSen reopened this May 28, 2026
@HuYaSen
Copy link
Copy Markdown
Collaborator Author

HuYaSen commented May 28, 2026

@microsoft-github-policy-service agree company="Microsoft"

Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

This PR performs the CoderMind rename from rpgkit/.rpgkit/rpgkit_cli surfaces to cmind/.cmind/cmind_cli, including CLI/package naming, runtime paths, workflows, docs, tests, scripts, and slash-command templates.

Changes:

  • Renames CLI/package/module/runtime references to CoderMind naming.
  • Updates release/lint workflow scripts and generated artifact names for cmind.
  • Updates documentation, tests, and command templates to use /cmind.* and .cmind.

Reviewed changes

Copilot reviewed 133 out of 136 changed files in this pull request and generated 10 comments.

Show a summary per file
File Description
README.md Updates public quick-start/docs references to cmind.
CoderMind/README.md Updates CoderMind user-facing install and workflow docs.
CoderMind/pyproject.toml Renames package, import package, and console scripts.
CoderMind/.gitignore Updates runtime/dev ignore patterns to .cmind.
.gitignore Updates CoderMind release artifact ignore path.
.markdownlint-cli2.jsonc Updates markdownlint ignore paths.
CoderMind/.markdownlint-cli2.jsonc Updates comments for renamed module/docs paths.
.github/workflows/cmind-lint.yml Updates workflow path filters.
.github/workflows/cmind-release.yml Updates release workflow script paths.
.github/workflows/cmind-pre-release.yml Updates pre-release workflow script paths.
.github/workflows/scripts/cmind/* Updates release packaging/version scripts for cmind.
CoderMind/src/cmind_cli/_assets.py Updates packaged asset lookup for cmind_cli.
CoderMind/src/cmind_cli/_storage.py Updates workspace storage paths/meta naming.
CoderMind/src/cmind_cli/_inner_git.py Updates inner-git naming/env variables.
CoderMind/src/cmind_cli/entries.py Updates MCP console-script messaging.
CoderMind/src/cmind_cli/init.py Updates CLI runtime/install behavior for CoderMind naming.
CoderMind/scripts/** Updates script paths, messages, commands, and env vars.
CoderMind/templates/commands/** Updates slash-command names and command invocations.
CoderMind/tests/** Updates tests/fixtures for .cmind, cmind_cli, and /cmind.*.
CoderMind/utils/*.py Updates utility defaults and documentation paths.
CoderMind/docs/cli-reference.md Updates CLI reference to cmind.
Comments suppressed due to low confidence (6)

.github/workflows/scripts/cmind/get-next-version.sh:4

  • With the prefix changed to cmind-v, the version calculation no longer sees the existing rpgkit-v* release tags described in the PR. On the first CoderMind release this falls through to INITIAL_VERSION (v0.1.0) and can downgrade pyproject.toml from the current 0.1.x line; seed from the latest historical rpgkit-v* tag or set an initial CoderMind version above the last RPG-Kit release.
    .github/workflows/scripts/cmind/get-next-pre-version.sh:10
  • This pre-release script has the same first-release fallback problem as the stable script: after switching to cmind-v, it ignores the existing rpgkit-v* tags and will produce v0.1.0-dev.<run> until a cmind-v* tag exists. Use the latest historical tag as the base (or initialize above it) so pre-releases do not go backwards from the current 0.1.x series.
    CoderMind/src/cmind_cli/_storage.py:106
  • Correct the article in this comment.
    CoderMind/src/cmind_cli/init.py:845
  • The generated ignore block has the same unignore problem as the checked-in .gitignore: !.cmind/config.toml is ineffective while .cmind/ ignores the parent directory. Include !.cmind/ before the config-file negation, and keep ignoring legacy .rpgkit/ as well so upgraded workspaces do not accidentally commit old runtime data.
    CoderMind/src/cmind_cli/init.py:2281
  • The “already encoded” guard still checks the workspace-local .cmind/data/rpg.json, but the renamed/current layout stores rpg.json under the home-side workspace directory (~/.cmind/workspaces/<id>/data). As a result cmind init --encode will not detect an existing graph and can rerun a long encode unnecessarily; resolve this path through _storage.workspace_data_dir(project_path) or common.paths instead.
    CoderMind/src/cmind_cli/init.py:1531
  • The cleanup now only removes cmind-codegen.*, but the obsolete persistent files created before this rename were named rpgkit-codegen.*. Upgraded workspaces will keep auto-loading the old instructions; include both the legacy rpgkit-codegen.* paths and the new names in this candidate list.

💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.

Comment thread README.md
> **CoderMind** is the new name for **RPG-Kit**. The product has been renamed; the install command (`rpgkit`) and package (`rpgkit-cli`) will be renamed in a subsequent release.

🔥 **New: [CoderMind](CoderMind/) (formerly RPG-Kit) is now open source for Claude Code and GitHub Copilot.**
🔥 **New: [CoderMind](CoderMind/) is now open source for Claude Code and GitHub Copilot.**

Provides BM25-based retrieval for code entities and code content,
using `rank_bm25` (already an RPG-Kit dependency) instead of the
using `rank_bm25` (already an CoderMind dependency) instead of the
".venv", "venv", ".idea", ".vscode",
".pytest_cache", ".mypy_cache", "build", "dist",
".rpgkit", ".venv_dev",
".cmind", ".venv_dev",
Comment thread CoderMind/scripts/smoke_test.py Outdated
"""Find all .py source files (excluding tests, venv, __pycache__)."""
skip_dirs = {".venv_dev", ".venv", "venv", "__pycache__", ".git",
".rpgkit", ".pytest_cache", "node_modules"}
".cmind", ".pytest_cache", "node_modules"}
Comment thread CoderMind/.gitignore Outdated
Comment on lines +228 to +231
.cmind/
# But DO commit the workspace AI config so collaborators get a sane default.
# Plan: plans/01-package-bundle-and-ai-config.md decision 15.
!.rpgkit/config.toml
!.cmind/config.toml
1. Inspect the `type` field in the output:

* `error` → Display the error message and stop. Instruct user to run `/rpgkit.refactor_feature` first. Terminate this command.
* `error` → Display the error message and stop. Instruct user to run `/cmind.refactor_feature` first. Terminate this command.
Comment thread CoderMind/scripts/check_skeleton.py Outdated
if not input_valid:
type_value = "error"
message = "Input file missing or invalid. Run /rpgkit.refactor_feature first."
message = "Input file missing or invalid. Run /cmind.refactor_feature first."
Comment thread CoderMind/scripts/build_skeleton.py Outdated
logger.error(f"Input file not found: {input_path}")
print(f"ERROR: Input file not found: {input_path}")
print("Please run /rpgkit.refactor_feature first.")
print("Please run /cmind.refactor_feature first.")
Comment thread CoderMind/scripts/update_graphs.py Outdated
Comment on lines 821 to 827
# For background hook processes (setsid), cwd may not be the
# workspace root. Use the rpg file path to infer it:
# rpg_path = <workspace>/.rpgkit/data/rpg.json → workspace = rpg_path/../../../
if not os.path.isdir(os.path.join(workspace_root, ".rpgkit")):
# rpg_path = <workspace>/.cmind/data/rpg.json → workspace = rpg_path/../../../
if not os.path.isdir(os.path.join(workspace_root, ".cmind")):
inferred = args.rpg.resolve().parent.parent.parent
if (inferred / ".rpgkit").is_dir():
if (inferred / ".cmind").is_dir():
workspace_root = str(inferred)
Comment thread CoderMind/scripts/rpg_visualize.py Outdated
parser = argparse.ArgumentParser(description="Visualize RPG as interactive graph")
parser.add_argument("rpg_file", nargs="?", default=str(RPG_FILE),
help="Path to rpg.json (default: .rpgkit/data/rpg.json)")
help="Path to rpg.json (default: .cmind/data/rpg.json)")
Surface fixes from Copilot review on the rename PR. Each item is
either a real correctness issue (gitignore negation, broken slash
command name, stale workspace inference) or a latent bug exposed
by the rename.

Changes:

* gitignore: switch from '.cmind/' (whole-dir ignore) to '.cmind/*'
  (glob) so the '!.cmind/config.toml' negation actually applies — git
  does not descend into a directory ignored as a whole. Same fix
  applied to cmind_cli._GITIGNORE_CMIND_COMMON so new workspaces
  written by 'cmind init' inherit the correct pattern.

* gitignore/dep_graph/smoke_test: also ignore (or skip during code
  discovery) legacy '.rpgkit/' directories so users upgrading from
  pre-rename workspaces don't accidentally commit stale runtime data
  or have it scanned by smoke tests / dependency-graph build.

* Slash command name: correct '/cmind.refactor_feature' →
  '/cmind.feature_refactor' in three places (build_skeleton.md,
  check_skeleton.py, build_skeleton.py). Pre-existing typo, surfaced
  during the rename audit.

* update_graphs.py workspace inference: the previous fallback walked
  up three levels from 'args.rpg' assuming a layout of
  '<workspace>/.cmind/data/rpg.json'. After PR #56 moved the default
  rpg.json into the home-side store
  ('~/.cmind/workspaces/<id>/data/rpg.json'), that derivation produces
  the home directory, not the workspace. Replace it with
  'cmind_cli._storage.find_workspace_root_from(cwd)' plus the
  'CMIND_WORKSPACE' env var. The normal hook path is unaffected
  because '_hook_spawn_background' already 'cd's into the workspace
  before launching the worker, so cwd is correct and the fallback
  block is skipped entirely.

* bm25_model docstring: 'an CoderMind dependency' → 'a CoderMind
  dependency' (article corrected post-rename).

* rpg_visualize --help: point users at the home-side workspace store
  instead of the obsolete '<workspace>/.cmind/data/rpg.json' path.

* README.md: drop the now-stale '> [!NOTE] rpgkit/rpgkit-cli will be
  renamed in a subsequent release' callout — that subsequent release
  is this PR.

Verification:

* Re-installed cmind-cli locally and re-ran the e2e harness
  (encoder-hooks + encoder-mcp + encoder-encode + encoder-update_rpg)
  with --max-parallel 2: 4/4 stages PASS, 0 failures, total 371s.
  encoder-encode exercises the post-commit hook path through
  update_graphs.py, confirming the inference fallback change has no
  regression on the common code path.
Copy link
Copy Markdown
Contributor

Copilot AI left a comment

Choose a reason for hiding this comment

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

Pull request overview

Copilot reviewed 133 out of 136 changed files in this pull request and generated no new comments.

Comments suppressed due to low confidence (2)

.github/workflows/scripts/cmind/get-next-version.sh:4

  • With the prefix changed to cmind-v, repositories that only have the historical rpgkit-v0.1.x tags will have no matching tags, so this script falls back to cmind-v0.0.0 and emits v0.1.0. The next stable release would therefore downgrade the package version from the current 0.1.x line instead of continuing after the latest historical tag. Add a fallback that considers existing rpgkit-v* tags (or the current pyproject version) when no cmind-v* tag exists.
    .github/workflows/scripts/cmind/get-next-pre-version.sh:10
  • The pre-release version base now only looks for cmind-v* stable tags. On the first renamed pre-release, that makes LATEST_TAG empty and generates v0.1.0-dev.<run> even if the existing historical rpgkit-v0.1.x releases are newer. Use the latest historical tag or pyproject version as the initial base when no cmind-v* tag exists.

Pre-release/release scripts:
  * get-next-version.sh / get-next-pre-version.sh: bridge from rpgkit-v*
    tags so the first cmind release continues from rpgkit-v0.1.4

cmind_cli/__init__.py:
  * _maybe_offer_initial_encode: use _storage.workspace_data_dir so the
    rpg.json existence check matches where the encoder actually writes
  * Drop _cleanup_legacy_codegen_persistent entirely. The pre-C4
    codegen auto-load files lived under <ws>/repo/ (a layout retired
    long before this rename) and were never written under the cmind
    name. cmind init/update overwriting the slash-command templates
    is sufficient to refresh user prompts.

cmind_cli/_storage.py:
  * Comment article fix: "an cmind" → "a cmind"
@HuYaSen HuYaSen merged commit 334319c into main May 29, 2026
2 checks passed
@HuYaSen HuYaSen deleted the dev/cmind-rename branch May 29, 2026 03:10
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