Skip to content

docs: switch Roo Code references to Zoo Code - #1428

Merged
clay-good merged 4 commits into
Fission-AI:mainfrom
taltas:fm/openspec-zoo
Jul 22, 2026
Merged

docs: switch Roo Code references to Zoo Code#1428
clay-good merged 4 commits into
Fission-AI:mainfrom
taltas:fm/openspec-zoo

Conversation

@taltas

@taltas taltas commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Intent

Update Fission-AI/OpenSpec so all current product references direct users to Zoo Code, the community successor identified by archived Roo Code's disclaimer. Replace current user-facing Roo Code names, recommendations, links, and integration wording with Zoo Code and https://github.com/Zoo-Code-Org/Zoo-Code across source, documentation, generated documentation, and website surfaces. Preserve genuinely historical references and inherited compatibility identifiers where Zoo Code still requires them: the roocode tool ID and adapter identifiers, plus .roo/commands and .roo/skills paths, were verified against the current Zoo Code repository. Keep the patch focused, include a patch changeset, validate formatting/lint/tests/docs/website generation, and open an upstream pull request whose title clearly describes the switch and whose body explains Roo Code's archival and links both https://github.com/RooCodeInc/Roo-Code#disclaimer and https://github.com/Zoo-Code-Org/Zoo-Code. Do not merge the pull request.

What Changed

  • Updated all current user-facing "Roo Code" references to "Zoo Code" with link to https://github.com/Zoo-Code-Org/Zoo-Code in documentation, config, and website
  • Updated code comments in the roocode adapter from "RooCode" to "Zoo Code" to reflect the community successor
  • Removed unused eslint directive in references.ts

Risk Assessment

Low: This is a focused naming and link migration from the archived Roo Code project to Zoo Code. It preserves the verified roocode tool ID, .roo/commands and .roo/skills compatibility paths, adapter identifiers, and genuinely historical references. The full test suite, TypeScript build, lint, documentation checks, end-to-end CLI verification, and GitHub CI all passed.

Testing

Validated the Zoo Code migration through comprehensive testing: all 2196 unit/integration tests pass, TypeScript build succeeds, and end-to-end CLI demonstration shows 'Zoo Code' branding in user output while correctly preserving .roo/ directory structure for compatibility. Manual verification confirmed user-facing references updated in docs (with GitHub link), config, website, and adapter comments, while compatibility identifiers (roocode tool ID, .roo paths, adapter exports) and historical references remain unchanged as required.

Evidence: Zoo Code Migration Summary

Successfully migrated all current Roo Code product references to Zoo Code while preserving compatibility identifiers (roocode tool ID, .roo paths). Updated 4 source files plus changeset. All 2196 tests pass, build succeeds.

# Zoo Code Migration Evidence

## Summary
Successfully migrated all current Roo Code product references to Zoo Code while preserving compatibility identifiers.

## Changes Made

### 1. Documentation (docs/supported-tools.md)
- Line 57: Changed table entry from "RooCode" to "[Zoo Code](https://github.com/Zoo-Code-Org/Zoo-Code) (`roocode`)"
- Preserved tool ID `roocode` and paths `.roo/skills/` and `.roo/commands/` for compatibility

### 2. Source Code Configuration (src/core/config.ts)
- Line 53: Updated AI_TOOLS array entry:
  - `name`: Changed from "RooCode" to "Zoo Code"
  - `successLabel`: Changed from "RooCode" to "Zoo Code"
  - `value`: Preserved as "roocode" (compatibility identifier)
  - `skillsDir`: Preserved as ".roo" (compatibility path)

### 3. Adapter Comments (src/core/command-generation/adapters/roocode.ts)
- Lines 1-6: Updated file header comments from "RooCode Command Adapter" to "Zoo Code Command Adapter"
- Lines 11-14: Updated JSDoc from "RooCode adapter" to "Zoo Code adapter"
- Function name `roocodeAdapter` preserved for compatibility
- File path `.roo/commands/opsx-<id>.md` preserved for compatibility

### 4. Website (website/app/(home)/page.tsx)
- Line 425: Updated TOOLS array entry from "RooCode" to "Zoo Code"

### 5. Changeset (.changeset/modern-tigers-laugh.md)
- Added changeset documenting the migration

## Compatibility Preserved

The following identifiers were intentionally preserved for Zoo Code compatibility:
- Tool ID: `roocode` (used in CLI: `--tools roocode`)
- Adapter export name: `roocodeAdapter`
- Skills directory: `.roo/skills/`
- Commands directory: `.roo/commands/`
- Tool value in configuration: `roocode`

## Historical References Preserved

The following historical references were correctly left unchanged:
- CHANGELOG.md: Historical product mentions
- README_OLD.md: Archived documentation
- openspec/changes/archive/*: Archived specifications and tasks
- Test files: Testing existing functionality with preserved identifiers

## Test Results

All 2196 tests passed across 111 test files:
- ✓ Configuration tests with Zoo Code label
- ✓ Adapter tests for roocode adapter
- ✓ Command generation tests
- ✓ Integration tests

## Build Results

Build completed successfully with TypeScript 5.9.3:
- ✓ No compilation errors
- ✓ All type definitions valid
- ✓ Generated JavaScript output correct

## End-to-End Verification

Ran `openspec init --tools roocode --profile core` which demonstrated:
1. CLI message: "Setting up Zoo Code..."
2. Success message: "Setup complete for Zoo Code"
3. Final output: "Created: Zoo Code"
4. Generated files in `.roo/` directory (compatibility preserved)
5. Generated 6 skills and 6 commands successfully

## User-Facing Impact

Users will now see:
1. "Zoo Code" in CLI tool selection and output messages
2. "Zoo Code" in documentation and supported tools table
3. "Zoo Code" on the marketing website
4. Link to https://github.com/Zoo-Code-Org/Zoo-Code in documentation
5. Continued compatibility with existing `.roo/` directory structure
Evidence: Visual Diff: Roo Code → Zoo Code

Shows exact changes: docs table now links to Zoo Code GitHub, config displays 'Zoo Code' label, website updated, adapter comments updated. Compatibility identifiers preserved: roocode ID, .roo directory paths, adapter exports.

# Visual Diff: Roo Code → Zoo Code Migration

## User-Facing Changes

### Documentation Table (docs/supported-tools.md:57)
`` `diff
-| RooCode (`roocode`) | `.roo/skills/openspec-*/SKILL.md` | `.roo/commands/opsx-<id>.md` |
+| [Zoo Code](https://github.com/Zoo-Code-Org/Zoo-Code) (`roocode`) | `.roo/skills/openspec-*/SKILL.md` | `.roo/commands/opsx-<id>.md` |
`` `

### Configuration (src/core/config.ts:53)
`` `diff
-  { name: 'RooCode', value: 'roocode', available: true, successLabel: 'RooCode', skillsDir: '.roo' },
+  { name: 'Zoo Code', value: 'roocode', available: true, successLabel: 'Zoo Code', skillsDir: '.roo' },
`` `

### Website (website/app/(home)/page.tsx:425)
`` `diff
   'Cline',
-  'RooCode',
+  'Zoo Code',
   'Kilo Code',
`` `

### Adapter Documentation (src/core/command-generation/adapters/roocode.ts:1-6)
`` `diff
 /**
- * RooCode Command Adapter
+ * Zoo Code Command Adapter
  *
- * Formats commands for RooCode following its workflow specification.
- * RooCode uses markdown headers instead of YAML frontmatter.
+ * Formats commands for Zoo Code following its workflow specification.
+ * Zoo Code uses markdown headers instead of YAML frontmatter.
  */
`` `

### Adapter JSDoc (src/core/command-generation/adapters/roocode.ts:11-14)
`` `diff
 /**
- * RooCode adapter for command generation.
+ * Zoo Code adapter for command generation.
  * File path: .roo/commands/opsx-<id>.md
  * Format: Markdown header with description
  */
`` `

## Preserved for Compatibility (UNCHANGED)

These identifiers remain unchanged to maintain Zoo Code compatibility:

1. Tool ID: `value: 'roocode'` (used in `--tools roocode`)
2. Skills directory: `skillsDir: '.roo'`
3. Command paths: `.roo/commands/opsx-<id>.md`
4. Adapter export: `export const roocodeAdapter`
5. Adapter tool ID: `toolId: 'roocode'`

## Historical References (UNCHANGED)

These historical references were intentionally preserved:

1. CHANGELOG.md - Historical release notes mentioning "RooCode"
2. README_OLD.md - Archived documentation
3. openspec/changes/archive/* - Archived specifications from when it was RooCode
4. Test files - Testing existing roocode functionality

## Impact Summary

**What Users See Changed:**
- Tool selection UI: "Zoo Code" instead of "RooCode"
- CLI output: "Setting up Zoo Code..." instead of "Setting up RooCode..."
- Documentation: Link to https://github.com/Zoo-Code-Org/Zoo-Code
- Website: "Zoo Code" in supported tools list

**What Stays the Same (For Compatibility):**
- Command line flag: `--tools roocode`
- Directory structure: `.roo/skills/` and `.roo/commands/`
- Config file references: `roocode` as the tool identifier
- Existing projects continue to work without changes
Evidence: End-to-End CLI Demo

Ran 'openspec init --tools roocode --profile core' which outputs: - 'Setting up Zoo Code...' - 'Setup complete for Zoo Code' - 'Created: Zoo Code' - Generated 6 skills and 6 commands in .roo/ directory This demonstrates the user-facing change working end-to-end while preserving .roo/ directory compatibility.

Demonstrating Zoo Code integration in OpenSpec CLI

This test demonstrates that OpenSpec now refers to Zoo Code instead of Roo Code.

Running: openspec init --tools roocode --profile core

- Creating OpenSpec structure...
▌ OpenSpec structure created
- Setting up Zoo Code...
✔ Setup complete for Zoo Code

OpenSpec Setup Complete

Created: Zoo Code
6 skills and 6 commands in .roo/
Config: openspec/config.yaml (schema: spec-driven)

Getting started:
  Start your first change: /opsx:propose "your idea"

Learn more: https://github.com/Fission-AI/OpenSpec
Feedback:   https://github.com/Fission-AI/OpenSpec/issues

Restart your IDE for slash commands to take effect.



Generated .roo directory structure (Zoo Code compatibility):

(eval):4: command not found: tree


Generated .roo directory structure (Zoo Code compatibility):

/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-apply.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-archive.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-explore.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-propose.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-sync.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/commands/opsx-update.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-apply-change/SKILL.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-archive-change/SKILL.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-explore/SKILL.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-propose/SKILL.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-sync-specs/SKILL.md
/var/folders/88/yxxhxrj93pl0l38m15f92xpw0000gp/T/no-mistakes-evidence/01KY5X5YGT7PXS8ZE6NEE63J5B/test-project/.roo/skills/openspec-update-change/SKILL.md


Sample generated command file (shows Zoo Code adapter formatting):

# OPSX: Propose

Propose a new change - create it and generate all artifacts in one step

Propose a new change - create the change and generate all artifacts in one step.

I'll create a change with the artifacts your schema defines. With the default spec-driven schema that is:
- proposal.md (what & why)
- `specs/<capability>/spec.md` (what the system must do - a delta, not the main spec)
- design.md (how)
- tasks.md (implementation steps)

When ready to implement, run /opsx:apply

---

**Store selection:** If the user names a store (a store is a standalone OpenSpec repo registered on this machine) or the work lives in one, run `openspec store list --json` to discover registered store ids, then pass `--store <id>` on the commands that read or write specs and changes (`new change`, `status`, `instructions`, `list`, `show`, `validate`, `archive`, `doctor`, `context`). Other commands do not take the flag. Hints printed by commands already carry the flag; keep it on follow-ups. Without a store, commands act on the nearest local `openspec/` root.

**Input**: The argument after `/opsx:propose` is the change name (kebab-case), OR a description of what the user wants to build.

Pipeline

Updates from git push no-mistakes

✅ **intent** - passed

✅ No issues found.

✅ **Rebase** - passed

✅ No issues found.

⚠️ **Review** - 4 issues (1 error, 3 warnings)
  • 🚨 User intent requires 'open an upstream pull request whose title clearly describes the switch and whose body explains Roo Code's archival and links both https://github.com/RooCodeInc/Roo-Code#disclaimer and https://github.com/Zoo-Code-Org/Zoo-Code&#39;, but no pull request exists for branch fm/openspec-zoo. The intent explicitly states 'Do not merge the pull request' indicating the PR must be created but left open.
  • ⚠️ CHANGELOG.md:281 - CHANGELOG.md:281 lists 'RooCode' in current product references ('21 AI tools supported'), which appears to be a current user-facing statement about currently supported tools rather than a historical log entry, and should reference 'Zoo Code' per the intent to 'Replace current user-facing Roo Code names'. However, this line is part of a dated changelog entry, making it genuinely historical.
  • ⚠️ README_OLD.md:118 - README_OLD.md:118 shows '| RooCode | /openspec-proposal...' in what appears to be current integration guidance. The intent requires replacing 'current user-facing Roo Code names' with Zoo Code. However, the file is named README_OLD.md which may indicate it's archived/historical documentation.
  • ⚠️ README_OLD.md:286 - README_OLD.md:286 states 'Tools with native slash commands (Claude Code, CodeBuddy, Cursor, Codex, Qoder, RooCode)' as current guidance. The intent requires updating current user-facing references. However, the file is named README_OLD.md which may indicate it's archived/historical.
✅ **Test** - passed

✅ No issues found.

  • pnpm test - All 2196 tests passed across 111 test files
  • pnpm build - Build completed successfully with TypeScript 5.9.3
  • openspec init --tools roocode --profile core - End-to-end CLI demonstration showing Zoo Code branding in output while generating files in .roo/ directory
  • grep -r &#39;RooCode|Roo Code&#39; - Verified user-facing references updated to Zoo Code while historical references in CHANGELOG and archives preserved
  • grep &#39;github.com/Zoo-Code-Org/Zoo-Code&#39; - Verified correct GitHub link in documentation
  • Manual code review of all 5 changed files to verify compatibility identifiers (roocode, .roo, roocodeAdapter) preserved
✅ **Document** - passed

✅ No issues found.

✅ **Lint** - passed

✅ No issues found.

✅ **Push** - passed

✅ No issues found.

Summary by CodeRabbit

  • Documentation

    • Updated tool directory documentation to list Zoo Code with its official link.
    • Refreshed product references from Roo Code to Zoo Code across integration guidance.
  • User Interface

    • Updated the homepage tool list to display Zoo Code.
  • Configuration

    • Renamed the tool’s displayed name and success label to Zoo Code while preserving existing compatibility settings.
  • Maintenance

    • Prepared a patch release containing these naming updates.

@taltas
taltas requested a review from TabishB as a code owner July 22, 2026 22:06
@coderabbitai

coderabbitai Bot commented Jul 22, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

📝 Walkthrough

Walkthrough

Updates RooCode references to Zoo Code across tool configuration, documentation, adapter comments, and the website, adds a patch changeset, and removes an adjacent ESLint suppression without changing sanitization behavior.

Changes

Zoo Code naming

Layer / File(s) Summary
Propagate Zoo Code naming
.changeset/modern-tigers-laugh.md, docs/supported-tools.md, src/core/config.ts, src/core/command-generation/adapters/roocode.ts, website/app/(home)/page.tsx
User-facing and descriptive tool names now use Zoo Code while the roocode identifier and .roo path remain unchanged. A patch changeset documents the rename.

Lint cleanup

Layer / File(s) Summary
Remove obsolete lint suppression
src/core/references.ts
Removes the no-control-regex suppression while leaving sanitizeInline unchanged.

Estimated code review effort: 1 (Trivial) | ~5 minutes

Possibly related PRs

Suggested reviewers: tabishb, clay-good

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title clearly summarizes the main change: replacing Roo Code references with Zoo Code references.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 1

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In @.changeset/modern-tigers-laugh.md:
- Line 5: Open the required upstream pull request before merging, documenting
Roo Code’s archival status and linking the Roo Code disclaimer and Zoo Code
repository. Do not treat the changeset update alone as satisfying this
requirement.
🪄 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: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: ca90ca5f-37e2-488a-8ff1-9881f4e82d2f

📥 Commits

Reviewing files that changed from the base of the PR and between 5406c8b and 63b2b05.

📒 Files selected for processing (6)
  • .changeset/modern-tigers-laugh.md
  • docs/supported-tools.md
  • src/core/command-generation/adapters/roocode.ts
  • src/core/config.ts
  • src/core/references.ts
  • website/app/(home)/page.tsx
💤 Files with no reviewable changes (1)
  • src/core/references.ts

"@fission-ai/openspec": patch
---

Update current Roo Code product references to its community successor, Zoo Code.

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟠 Major | 🏗️ Heavy lift

Open the required upstream pull request before merging.

The PR objectives require an upstream PR explaining Roo Code’s archival status and linking both the Roo Code disclaimer and Zoo Code repository; the supplied review evidence says it has not been opened. This changeset alone does not satisfy that requirement.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.changeset/modern-tigers-laugh.md at line 5, Open the required upstream pull
request before merging, documenting Roo Code’s archival status and linking the
Roo Code disclaimer and Zoo Code repository. Do not treat the changeset update
alone as satisfying this requirement.

@alfred-openspec alfred-openspec 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.

Approved at exact head edead43. Roo Code's archived disclaimer names Zoo Code as a community fork, Zoo Code still uses the preserved .roo compatibility paths, and frozen install/build/lint, 229 focused tests, website doc generation/type-check, a real Zoo Code init, and the full exact-head CI/security matrix all pass with a clean worktree.

The bot's “open the upstream PR” finding is satisfied by this open upstream PR and its body links both required sources.

@clay-good
clay-good added this pull request to the merge queue Jul 22, 2026
Merged via the queue into Fission-AI:main with commit 81d5109 Jul 22, 2026
13 checks passed
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