From 6288fe6e477b8eedddcea0c0eba0d139d5fef2d4 Mon Sep 17 00:00:00 2001 From: ivaseeq <126263471+ivaseeq@users.noreply.github.com> Date: Thu, 29 Oct 2026 03:33:40 +0300 Subject: [PATCH 1/3] docs: explain Qwen extension common rule supplement --- docs/QWEN-GUIDE.md | 51 ++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 51 insertions(+) diff --git a/docs/QWEN-GUIDE.md b/docs/QWEN-GUIDE.md index 8e9e17122..d1f481e6d 100644 --- a/docs/QWEN-GUIDE.md +++ b/docs/QWEN-GUIDE.md @@ -2,6 +2,57 @@ ECC can install its managed command, agent, skill, rule, and MCP surfaces into the Qwen CLI home directory. +## Native extension installation and common rules + +Qwen Code also supports installing the Claude marketplace package through its +own extension manager: + +```bash +qwen extensions install https://github.com/affaan-m/ECC:ecc +``` + +This is a different installation path from the managed adapter below. On Qwen +Code 0.26.1 with the ECC v2.2.3 release, the extension loads skills and commands, +but reports eleven rule warnings: ten files in `rules/common/` and +`rules/README.md` have no `paths:` frontmatter. + +This is intentional Qwen behavior: **extension rules must be conditional**. +User rules under `~/.qwen/rules/` may instead be baseline instructions, loaded +from the first request. See the [Qwen rules documentation](https://qwenlm.github.io/qwen-code-docs/en/users/features/rules/). +Do not add artificial `paths: ["**/*"]` to shared ECC rules just to silence the +warnings; that changes when they apply and does not preserve baseline semantics. +`rules/README.md` is installation documentation and should not become a rule. + +If you explicitly want ECC's common policies in every normal Qwen session +(outside safe mode), you can +supplement the extension with a user-owned copy of **only** its common rules: + +```bash +# Inspect these policies first: they include TDD, coverage and delegation rules. +# Stop if the destination exists; review/merge existing files instead of overwriting. +test ! -e "$HOME/.qwen/rules/ecc/common" && \ + test ! -L "$HOME/.qwen/rules/ecc/common" && \ + mkdir -p "$HOME/.qwen/rules/ecc" && \ + cp -R "$HOME/.qwen/extensions/ecc/rules/common" "$HOME/.qwen/rules/ecc/" +``` + +For project-only scope, use `/.qwen/rules/ecc/` as the destination; +project rules load only in trusted workspaces. Choose one scope to avoid +duplicating the same baseline policies. Keep the `common/` subdirectory. + +These copies are not owned or updated by the extension manager. After +`qwen extensions update ecc`, compare them with the extension's common rules +and refresh deliberately, preserving any local edits. To undo this supplement, +remove only the copied `common/` directory after checking for local changes. +The original extension warnings remain: verify that the user/project copies +load, rather than treating warning disappearance as proof of success. + +Do not run `--modules rules-core` over an active extension as a minimal repair: +it installs the entire rules tree, including language rules already supplied by +the extension and the README. Likewise, do not layer a full managed install +over the extension unintentionally. Successful skill loading does not establish +hook-runtime compatibility. + ## Install From the ECC repository root: From 4c58ea1f690c1765d9fdb71851a4e5ad692a2cb3 Mon Sep 17 00:00:00 2001 From: ivaseeq <126263471+ivaseeq@users.noreply.github.com> Date: Thu, 29 Oct 2026 03:50:34 +0300 Subject: [PATCH 2/3] docs: honor QWEN_HOME in common rule copy instructions --- docs/QWEN-GUIDE.md | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/docs/QWEN-GUIDE.md b/docs/QWEN-GUIDE.md index d1f481e6d..d48b9dbf0 100644 --- a/docs/QWEN-GUIDE.md +++ b/docs/QWEN-GUIDE.md @@ -17,7 +17,7 @@ but reports eleven rule warnings: ten files in `rules/common/` and `rules/README.md` have no `paths:` frontmatter. This is intentional Qwen behavior: **extension rules must be conditional**. -User rules under `~/.qwen/rules/` may instead be baseline instructions, loaded +User rules under `~/.qwen/rules/` (or `$QWEN_HOME/rules/` when set) may instead be baseline instructions, loaded from the first request. See the [Qwen rules documentation](https://qwenlm.github.io/qwen-code-docs/en/users/features/rules/). Do not add artificial `paths: ["**/*"]` to shared ECC rules just to silence the warnings; that changes when they apply and does not preserve baseline semantics. @@ -30,10 +30,10 @@ supplement the extension with a user-owned copy of **only** its common rules: ```bash # Inspect these policies first: they include TDD, coverage and delegation rules. # Stop if the destination exists; review/merge existing files instead of overwriting. -test ! -e "$HOME/.qwen/rules/ecc/common" && \ - test ! -L "$HOME/.qwen/rules/ecc/common" && \ - mkdir -p "$HOME/.qwen/rules/ecc" && \ - cp -R "$HOME/.qwen/extensions/ecc/rules/common" "$HOME/.qwen/rules/ecc/" +test ! -e "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/common" && \ + test ! -L "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/common" && \ + mkdir -p "${QWEN_HOME:-$HOME/.qwen}/rules/ecc" && \ + cp -R "$HOME/.qwen/extensions/ecc/rules/common" "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/" ``` For project-only scope, use `/.qwen/rules/ecc/` as the destination; From 344953d3e205a33c2973ab95ad70b5b36b3da1a0 Mon Sep 17 00:00:00 2001 From: ivaseeq <126263471+ivaseeq@users.noreply.github.com> Date: Thu, 29 Oct 2026 04:12:33 +0300 Subject: [PATCH 3/3] docs: resolve ECC rule source under QWEN_HOME --- docs/QWEN-GUIDE.md | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/docs/QWEN-GUIDE.md b/docs/QWEN-GUIDE.md index d48b9dbf0..16cc56e83 100644 --- a/docs/QWEN-GUIDE.md +++ b/docs/QWEN-GUIDE.md @@ -17,8 +17,8 @@ but reports eleven rule warnings: ten files in `rules/common/` and `rules/README.md` have no `paths:` frontmatter. This is intentional Qwen behavior: **extension rules must be conditional**. -User rules under `~/.qwen/rules/` (or `$QWEN_HOME/rules/` when set) may instead be baseline instructions, loaded -from the first request. See the [Qwen rules documentation](https://qwenlm.github.io/qwen-code-docs/en/users/features/rules/). +User rules under `~/.qwen/rules/` (or `$QWEN_HOME/rules/` when set) may instead +be baseline instructions, loaded from the first request. See the [Qwen rules documentation](https://qwenlm.github.io/qwen-code-docs/en/users/features/rules/). Do not add artificial `paths: ["**/*"]` to shared ECC rules just to silence the warnings; that changes when they apply and does not preserve baseline semantics. `rules/README.md` is installation documentation and should not become a rule. @@ -28,12 +28,14 @@ If you explicitly want ECC's common policies in every normal Qwen session supplement the extension with a user-owned copy of **only** its common rules: ```bash +# If QWEN_HOME is set, export it as an absolute path (not a quoted ~/ path). # Inspect these policies first: they include TDD, coverage and delegation rules. # Stop if the destination exists; review/merge existing files instead of overwriting. -test ! -e "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/common" && \ +test -d "${QWEN_HOME:-$HOME/.qwen}/extensions/ecc/rules/common" && \ + test ! -e "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/common" && \ test ! -L "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/common" && \ mkdir -p "${QWEN_HOME:-$HOME/.qwen}/rules/ecc" && \ - cp -R "$HOME/.qwen/extensions/ecc/rules/common" "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/" + cp -R "${QWEN_HOME:-$HOME/.qwen}/extensions/ecc/rules/common" "${QWEN_HOME:-$HOME/.qwen}/rules/ecc/" ``` For project-only scope, use `/.qwen/rules/ecc/` as the destination;