chore(cmind): rename rpgkit → cmind across CoderMind module#60
Merged
Conversation
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)
Collaborator
Author
|
@microsoft-github-policy-service agree company="Microsoft" |
Contributor
There was a problem hiding this comment.
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 existingrpgkit-v*release tags described in the PR. On the first CoderMind release this falls through toINITIAL_VERSION(v0.1.0) and can downgradepyproject.tomlfrom the current 0.1.x line; seed from the latest historicalrpgkit-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 existingrpgkit-v*tags and will producev0.1.0-dev.<run>until acmind-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.tomlis 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 storesrpg.jsonunder the home-side workspace directory (~/.cmind/workspaces/<id>/data). As a resultcmind init --encodewill not detect an existing graph and can rerun a long encode unnecessarily; resolve this path through_storage.workspace_data_dir(project_path)orcommon.pathsinstead.
CoderMind/src/cmind_cli/init.py:1531 - The cleanup now only removes
cmind-codegen.*, but the obsolete persistent files created before this rename were namedrpgkit-codegen.*. Upgraded workspaces will keep auto-loading the old instructions; include both the legacyrpgkit-codegen.*paths and the new names in this candidate list.
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| > **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", |
| """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 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. |
| 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." |
| 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 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) |
| 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.
Contributor
There was a problem hiding this comment.
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 historicalrpgkit-v0.1.xtags will have no matching tags, so this script falls back tocmind-v0.0.0and emitsv0.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 existingrpgkit-v*tags (or the current pyproject version) when nocmind-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 makesLATEST_TAGempty and generatesv0.1.0-dev.<run>even if the existing historicalrpgkit-v0.1.xreleases are newer. Use the latest historical tag or pyproject version as the initial base when nocmind-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"
QingtaoLi1
approved these changes
May 28, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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:
Breaking change: existing
.rpgkit/workspaces will not be auto-migrated. Users on v0.1.x need to re-runcmind initafter upgrading. Historical release tagsrpgkit-v0.1.{1..4}are kept; new releases will be taggedcmind-v*.Verified end-to-end:
cmind init/update/version/checksmoke-tested in a clean workspace