Skip to content

feat(commands): add /ecc-guide command for interactive navigation#1332

Closed
Qingzhou-Joshua wants to merge 2 commits intoaffaan-m:mainfrom
Qingzhou-Joshua:feat/ecc-guide-command
Closed

feat(commands): add /ecc-guide command for interactive navigation#1332
Qingzhou-Joshua wants to merge 2 commits intoaffaan-m:mainfrom
Qingzhou-Joshua:feat/ecc-guide-command

Conversation

@Qingzhou-Joshua
Copy link
Copy Markdown
Contributor

@Qingzhou-Joshua Qingzhou-Joshua commented Apr 9, 2026

What Changed

Added a new /ecc-guide command that provides interactive, conversational guidance for navigating the everything-claude-code project.

Why This Change

Problem:

  • New users face steep learning curve with 80+ skills and commands
  • Features aren't easily discoverable
  • Static documentation is comprehensive but not interactive
  • Need conversational way to explore without leaving IDE

Solution:
A lightweight command that helps users:

  • 🎓 Learn project structure interactively
  • 🔍 Discover skills, commands, workflows
  • 💬 Get contextual guidance via conversation
  • 🚀 Reduce time-to-productivity

Testing Done

  • Manual testing completed
    • Tested /ecc-guide with no arguments (interactive mode)
    • Tested topic access: /ecc-guide skills, /ecc-guide workflows
    • Verified command structure follows existing patterns
  • Edge cases considered
    • Invalid topics handled gracefully
    • Content dynamically loaded from project structure
    • No hardcoded paths or secrets
  • Automated tests pass locally (N/A - new command without test suite)

Type of Change

  • feat: New feature

Security & Quality Checklist

  • No secrets or API keys committed
  • JSON files validate cleanly (N/A - markdown only)
  • Shell scripts pass shellcheck (N/A - no shell scripts)
  • Pre-commit hooks pass locally
  • No sensitive data exposed in logs or output
  • Follows conventional commits format

Documentation

  • Added comprehensive documentation within command file
  • Includes usage examples and best practices
  • Added frontmatter with description
  • Follows command template structure from CONTRIBUTING.md

Additional Notes

  • Command is lightweight (user-triggered, not auto-loaded)
  • Complements existing docs without duplication
  • Uses dynamic content loading from project files
  • Designed for progressive disclosure (no information overload)

This is my first contribution to the project. Feedback welcome! 🙏


Summary by cubic

Adds a new /ecc-guide command that launches an interactive, in-IDE guide for everything-claude-code. Improves discovery of skills, commands, rules, and workflows, and syncs docs to 80 commands and 182 skills.

  • New Features

    • /ecc-guide $ARGUMENTS with topics: setup, skills, commands, rules, workflows, examples; no args starts interactive mode.
    • Direct lookups (e.g., /ecc-guide tdd-workflow) and search (find: "<query>") with context-aware answers.
    • Added commands/ecc-guide.md (shim) and skills/ecc-guide/SKILL.md; registered the skill and command in agent.yaml.
  • Bug Fixes

    • Switched to $ARGUMENTS; fixed nested code fences; removed /help.
    • Replaced invalid skill names with existing ones; generalized troubleshooting example.
    • Updated counts to 80 commands and 182 skills across README.md, AGENTS.md, README.zh-CN.md, docs/zh-CN/README.md, and docs/zh-CN/AGENTS.md.

Written for commit 61b7c2e. Summary will update on new commits.

Summary by CodeRabbit

  • New Features

    • Added an interactive /ecc-guide command to help users learn the project, discover skills/commands, explore workflows and examples, and troubleshoot via progressive disclosure and context-aware responses.
  • Documentation

    • Updated README and localized documentation to list the new command and increment displayed command counts to 80 across guides, summaries, and quick-starts.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 9, 2026

Note

Reviews paused

It looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the reviews.auto_review.auto_pause_after_reviewed_commits setting.

Use the following commands to manage reviews:

  • @coderabbitai resume to resume automatic reviews.
  • @coderabbitai review to trigger a single review.

Use the checkboxes below for quick actions:

  • ▶️ Resume reviews
  • 🔍 Trigger review
📝 Walkthrough

Walkthrough

Adds a new interactive command guide commands/ecc-guide.md, registers ecc-guide in agent.yaml, and updates English and Chinese README/AGENTS documentation to increment the documented command count from 79 to 80.

Changes

Cohort / File(s) Summary
New Command Documentation
commands/ecc-guide.md
Adds /ecc-guide documentation detailing invocation modes (setup, skills, commands, rules, workflows, examples, interactive), find: "..." search form, control flow, progressive-disclosure responses, context-aware tailoring, example interactions, constraints/anti-patterns, integration points, metrics, and contributor/testing notes.
Command Registration
agent.yaml
Registers new top-level command ecc-guide under commands.
README and Catalog Counts
README.md, README.zh-CN.md, docs/zh-CN/README.md, AGENTS.md, docs/zh-CN/AGENTS.md
Increment documented command counts from 79 → 80 across English and Chinese README and AGENTS documentation; no behavioral changes.

Sequence Diagram(s)

sequenceDiagram
  participant User as User
  participant ECC as /ecc-guide
  participant Index as Search/Index
  participant Repo as Repo (README / SKILL.md / commands)

  User->>ECC: Invoke /ecc-guide (mode or find query)
  ECC->>User: Clarify intent or continue interactively
  ECC->>Index: Query index/recommendation engine for relevant docs
  Index->>Repo: Fetch matched files (README, SKILL.md, commands)
  Repo-->>Index: Return content snippets/metadata
  Index-->>ECC: Return ranked results
  ECC->>User: Return progressive-disclosure response (overview, links, examples, follow-ups)
Loading

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Suggested reviewers

  • affaan-m
  • dragosnastasemihai-design

Poem

🐰 I hopped through folders, nibbling notes with care,

Laid out modes and markers, a lantern in the air.
Setup, find, and examples — I polished every thread,
Ask once, dive deeper; I’ll guide where docs are spread.

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding a new /ecc-guide command for interactive navigation. It is concise, specific, and directly reflects the primary purpose of the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Warning

Review ran into problems

🔥 Problems

Git: Failed to clone repository. Please run the @coderabbitai full review command to re-trigger a full review. If the issue persists, set path_filters to include or exclude specific files.


Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🧹 Nitpick comments (1)
commands/ecc-guide.md (1)

49-56: Add explicit path-safety guidance to dynamic loading examples.

The implementation snippets currently model direct filesystem reads; this can lead to unsafe path handling when topic names become user-influenced. Recommend documenting allowlisting + normalized path checks in the example itself.

Proposed hardening update for the snippet
-const projectIndex = {
-  skills: fs.readdirSync('./skills').map(dir => ({
-    name: dir,
-    readme: fs.readFileSync(`./skills/${dir}/SKILL.md`, 'utf8')
-  })),
-  commands: fs.readdirSync('./commands').filter(f => f.endsWith('.md'))
-};
+const path = require('path');
+const ROOT = process.cwd();
+const skillsRoot = path.resolve(ROOT, 'skills');
+const commandsRoot = path.resolve(ROOT, 'commands');
+
+const projectIndex = {
+  skills: fs.readdirSync(skillsRoot).map((dir) => {
+    const skillFile = path.resolve(skillsRoot, dir, 'SKILL.md');
+    if (!skillFile.startsWith(skillsRoot + path.sep)) {
+      throw new Error('Unsafe skill path');
+    }
+    return {
+      name: dir,
+      readme: fs.readFileSync(skillFile, 'utf8')
+    };
+  }),
+  commands: fs
+    .readdirSync(commandsRoot)
+    .filter((f) => /^[a-z0-9-]+\.md$/.test(f))
+};

Also applies to: 325-335

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@commands/ecc-guide.md` around lines 49 - 56, The dynamic file-read example
uses a raw skillPath and fs.readFileSync which is unsafe for user-influenced
topics; update the example and surrounding docs to require an explicit allowlist
of valid skill identifiers and perform path normalization/validation before
constructing skillPath (e.g., normalize user input, ensure it matches an
allowlisted key, then map to a known file path), and document these checks
alongside the skillPath/fs.readFileSync usage to prevent directory traversal and
unauthorized reads.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@commands/ecc-guide.md`:
- Around line 115-141: The examples use nested triple-fenced code blocks which
break Markdown rendering; update the outer fences to a longer fence (e.g., four
backticks) around the blocks that include inner triple-backtick examples (the
"tdd-workflow" example and the similar workflow example later) so inner fences
are preserved, making sure to replace the outer ``` with ```` (or another longer
fence) around the "Example usage" sections and any other nested examples
referenced.

---

Nitpick comments:
In `@commands/ecc-guide.md`:
- Around line 49-56: The dynamic file-read example uses a raw skillPath and
fs.readFileSync which is unsafe for user-influenced topics; update the example
and surrounding docs to require an explicit allowlist of valid skill identifiers
and perform path normalization/validation before constructing skillPath (e.g.,
normalize user input, ensure it matches an allowlisted key, then map to a known
file path), and document these checks alongside the skillPath/fs.readFileSync
usage to prevent directory traversal and unauthorized reads.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: ed1ef4d8-c4df-455f-9f77-d633db8d9932

📥 Commits

Reviewing files that changed from the base of the PR and between 1b3ccb8 and 9f0f1af.

📒 Files selected for processing (1)
  • commands/ecc-guide.md

Comment thread commands/ecc-guide.md Outdated
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Greptile Summary

This PR adds a new /ecc-guide command and corresponding skills/ecc-guide/SKILL.md to provide interactive, conversational onboarding for ECC users, plus documentation count bumps (79→80 commands, 181→182 skills) across README and localized docs.

  • P1 — broken bold markers in welcome example (SKILL.md lines 75–78): four bullet points open ** but never close it, producing garbled rendering for every user who sees the welcome message.
  • P1 — non-existent skill names in two sections (SKILL.md lines 100–101 and 219–223): using-git-worktrees, systematic-debugging, typescript-patterns, and react-patterns are suggested to users but have no matching skills/ directories; the real counterparts are git-workflow, verification-loop, and frontend-patterns.

Confidence Score: 4/5

Safe to merge after fixing broken bold markers and non-existent skill name references in SKILL.md.

Two P1 issues remain in SKILL.md: unclosed bold markers in the welcome message example that will render incorrectly for every user, and four non-existent skill names spread across the Examples and Contextual Suggestions sections that will actively mislead new users this guide is intended to help. All other files are clean.

skills/ecc-guide/SKILL.md — contains broken markdown formatting and non-existent skill references

Vulnerabilities

No security concerns identified. The changes are documentation-only markdown files with no secrets, credentials, user input handling, or executable code paths.

Important Files Changed

Filename Overview
skills/ecc-guide/SKILL.md New skill file with four issues: two non-existent skill names in Example 2 (using-git-worktrees, systematic-debugging), two non-existent skills in Contextual Suggestions (typescript-patterns, react-patterns), a stale git-worktrees in the pseudocode beginnerPath, and unclosed bold markers in the welcome message example.
commands/ecc-guide.md Clean shim command file with proper frontmatter, $ARGUMENTS usage, and correct delegation to the skill; no issues found.
agent.yaml Correctly registers both the ecc-guide skill and ecc-guide command in alphabetical order.
README.md Count updates from 79→80 commands and 181→182 skills applied consistently across all comparison tables.
AGENTS.md Count bump to 80 commands and 182 skills in header and directory listing; no issues.

Flowchart

%%{init: {'theme': 'neutral'}}%%
flowchart TD
    A[User invokes /ecc-guide] --> B{$ARGUMENTS?}
    B -- none --> C[Interactive conversation mode]
    B -- setup/skills/commands/rules/workflows/examples --> D[Direct topic access]
    B -- feature-name --> E[Direct skill/command lookup]
    B -- find: query --> F[Search across all skills and commands]
    C --> G[ecc-guide SKILL.md activated]
    D --> G
    E --> G
    F --> G
    G --> H[Step 1: Parse user intent]
    H --> I[Step 2: Dynamic content loading from project files]
    I --> J[Step 3: Progressive disclosure response]
    J --> K[Step 4: Context-aware follow-up options]
Loading

Reviews (6): Last reviewed commit: "fix: Address code review feedback and sy..." | Re-trigger Greptile

Comment thread commands/ecc-guide.md Outdated
Comment thread commands/ecc-guide.md Outdated
Comment thread commands/ecc-guide.md Outdated
Comment thread commands/ecc-guide.md Outdated
Copy link
Copy Markdown
Contributor

@cubic-dev-ai cubic-dev-ai bot left a comment

Choose a reason for hiding this comment

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

2 issues found across 1 file

Prompt for AI agents (unresolved issues)

Check if these issues are valid — if so, understand the root cause of each and fix them. If appropriate, use sub-agents to investigate and fix each issue separately.


<file name="commands/ecc-guide.md">

<violation number="1" location="commands/ecc-guide.md:13">
P2: Nested triple-backtick fences break Markdown rendering here. The inner ` ``` ` block (at "Example usage:") prematurely closes this outer fence, causing everything after it to render as plain text. Use a longer outer fence (e.g., ``````) to contain inner code blocks. Same issue applies to Example 4 below.</violation>

<violation number="2" location="commands/ecc-guide.md:114">
P2: Nested triple-backtick fences in examples break Markdown rendering by prematurely closing outer code blocks.</violation>
</file>

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review, or fix all with cubic.

Comment thread commands/ecc-guide.md
Comment thread commands/ecc-guide.md
@Qingzhou-Joshua Qingzhou-Joshua force-pushed the feat/ecc-guide-command branch from 30e017a to 87081c4 Compare April 9, 2026 08:16
@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Apr 9, 2026

Tip:

Greploop — Automatically fix all review issues by running /greploops in Claude Code. It iterates: fix, push, re-review, repeat until 5/5 confidence.

Use the Greptile plugin for Claude Code to query reviews, search comments, and manage custom context directly from your terminal.

@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai bot commented Apr 9, 2026

Caution

Failed to replace (edit) comment. This is likely due to insufficient permissions or the comment being deleted.

Error details
{}

@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

1 similar comment
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

Copy link
Copy Markdown
Contributor

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@commands/ecc-guide.md`:
- Around line 17-25: Update the Arguments section to explicitly list the two
missing invocation modes: add an entry for find: "<query>" (searches
features/skills by query) and an entry describing direct feature lookup by slug
(e.g., tdd-workflow) which opens that feature's documentation; ensure the same
additions are made in the corresponding duplicate block later in the file (the
other Arguments list).
- Around line 5-376: This command's full workflow should be canonicalized as a
skill and commands/ecc-guide.md turned into a shim: extract the detailed
workflow content out of commands/ecc-guide.md into a new skill at
skills/ecc-guide/SKILL.md (preserve headings, examples and usage), then modify
commands/ecc-guide.md to only delegate/redirect to that skill (keep the
/ecc-guide command entry but call the skills indexer/dynamic loader used by
indexer.js/projectIndex to read the SKILL.md and present a short compatibility
response). Ensure examples and interactive behavior remain identical when
served, and update any references in scripts/ecc-guide/indexer.js or
recommender.js to include the new skills/ecc-guide SKILL.md.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: b211cb34-3600-4649-9715-ce6f5b473480

📥 Commits

Reviewing files that changed from the base of the PR and between 2cbb886 and f352037.

📒 Files selected for processing (1)
  • commands/ecc-guide.md

Comment thread commands/ecc-guide.md Outdated
Comment thread commands/ecc-guide.md
@Qingzhou-Joshua Qingzhou-Joshua force-pushed the feat/ecc-guide-command branch from f352037 to c81b775 Compare April 9, 2026 08:52
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@Qingzhou-Joshua Qingzhou-Joshua force-pushed the feat/ecc-guide-command branch from c81b775 to ebaf27f Compare April 9, 2026 08:56
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@Qingzhou-Joshua Qingzhou-Joshua force-pushed the feat/ecc-guide-command branch from ebaf27f to 2c2e907 Compare April 9, 2026 09:16
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

- Update command count from 79 to 80 in all documentation files
  - README.md (quick-start summary + parity table)
  - README.zh-CN.md (quick-start summary)
  - AGENTS.md (summary + project structure)
  - docs/zh-CN/README.md (comparison table + parity table)
  - docs/zh-CN/AGENTS.md (summary + project structure)

- Add ecc-guide to agent.yaml commands list

- Fix nested code fences in example sections (Example 3, 4)

- Replace non-existent skill names with real ones:
  - git-worktrees → using-git-worktrees
  - typescript-patterns → frontend-patterns
  - golang-patterns → backend-patterns

- Update troubleshooting example to be more generic

- Remove non-existent /help command from Related Commands

- Use $ARGUMENTS placeholder instead of [topic] per project convention
@Qingzhou-Joshua Qingzhou-Joshua force-pushed the feat/ecc-guide-command branch from 2c2e907 to 61b7c2e Compare April 9, 2026 09:23
@ecc-tools
Copy link
Copy Markdown
Contributor

ecc-tools bot commented Apr 9, 2026

ECC bundle files are already tracked in this repository. Skipping generation of another bundle PR.

@Qingzhou-Joshua
Copy link
Copy Markdown
Contributor Author

CI Failure Analysis: Test (windows-latest, Node 18.x, npm)

The failing test "npm pack includes the compiled OpenCode dist payload" in tests/scripts/build-opencode.test.js is not caused by changes in this PR. It's a pre-existing cross-platform compatibility issue in the test file.

Root Cause

On line 49, the test uses:

const result = spawnSync("npm", ["pack", "--dry-run", "--json"], {
  cwd: repoRoot,
  encoding: "utf8",
})

On Windows, npm is actually npm.cmd (a batch script). child_process.spawnSync does not resolve .cmd extensions automatically — unlike a shell, it looks for a literal npm executable, which doesn't exist on Windows. This causes the spawn to fail silently (result.status is null, result.stdout is empty), and the subsequent JSON.parse or assert throws.

Note that the earlier test in the same file (spawnSync("node", [buildScript], ...)) works fine because node is a real executable on all platforms.

Fix

Add shell: true to the spawnSync options so Windows can resolve npm.cmd:

const result = spawnSync("npm", ["pack", "--dry-run", "--json"], {
  cwd: repoRoot,
  encoding: "utf8",
  shell: true,
})

This is a pre-existing issue unrelated to the changes in this PR.

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