Skip to content

fix: Use ASCII arrows instead of unicode#1010

Open
Dansyuqri wants to merge 1 commit intoFission-AI:mainfrom
Dansyuqri:fix/visual-defect-unicode-characters
Open

fix: Use ASCII arrows instead of unicode#1010
Dansyuqri wants to merge 1 commit intoFission-AI:mainfrom
Dansyuqri:fix/visual-defect-unicode-characters

Conversation

@Dansyuqri
Copy link
Copy Markdown

@Dansyuqri Dansyuqri commented Apr 25, 2026

This fixes the issue of ambiguous unicode character width when visualizing on terminals

Previously, the issue was that the unicode characters caused a visual defect:
BEFORE
image

After updating the skill generation, the arrows use ASCII characters, which fix the issue.
image

Fixes #983

Summary by CodeRabbit

  • Chores
    • Updated explore template diagrams to use ASCII characters exclusively, replacing Unicode box-drawing characters with plain text equivalents.

This fixes the issue of ambiguous unicode character width when visualizing on terminals
@Dansyuqri Dansyuqri requested a review from TabishB as a code owner April 25, 2026 02:59
@coderabbitai
Copy link
Copy Markdown
Contributor

coderabbitai Bot commented Apr 25, 2026

📝 Walkthrough

Walkthrough

The explore-mode skill template instructions were updated to replace Unicode box-drawing and arrow characters with ASCII equivalents (+, -, |, -->). Test hash expectations were updated to reflect the template content changes. No functional or structural modifications were made.

Changes

Cohort / File(s) Summary
Explore Template Content Update
src/core/templates/workflows/explore.ts
Replaced Unicode box/arrow diagrams with ASCII-only characters and added explicit directive against Unicode-based diagrams to prevent visual artifacts.
Test Hash Updates
test/core/templates/skill-templates-parity.test.ts
Updated SHA-256 hash expectations for explore template parity test assertions to match new ASCII diagram content.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • TabishB

Poem

A rabbit hops through ASCII lands, 🐰
Where + and - replace the strands,
Of fancy boxes, Unicode dreams—
Plain text now streams in cleaner beams! ✨
No visual bugs in sight, it seems.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'fix: Use ASCII arrows instead of unicode' accurately reflects the main change of replacing Unicode characters with ASCII arrows.
Linked Issues check ✅ Passed The PR addresses issue #983 by replacing Unicode box/arrow characters with ASCII equivalents to eliminate visual artifacts from ambiguous character width.
Out of Scope Changes check ✅ Passed All changes are directly related to fixing the Unicode character visual defect: template instruction updates and corresponding hash updates in tests.

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

✨ 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 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.

Caution

Some comments are outside the diff and can’t be posted inline due to platform limitations.

⚠️ Outside diff range comments (1)
src/core/templates/workflows/explore.ts (1)

162-251: ⚠️ Potential issue | 🟠 Major

Incomplete fix: example diagrams below the directive still use Unicode box-drawing characters.

The new directive at lines 72–77 forbids , , , , , etc., but the three example diagrams further down in the same template still use them:

  • Lines 162–176 (COLLABORATION SPECTRUM): , , , , , , ,
  • Lines 185–205 (CURRENT AUTH FLOW): , , , , , , , ,
  • Lines 237–251 (CLI TOOL DATA STORAGE): , , , ,

This contradicts the directive and will likely cause the LLM to mimic these Unicode patterns, reproducing the exact ambiguous-width visual artifact described in #983 that this PR claims to close. The OPSX command template (lines 303–482) was already cleaned up because it doesn't contain these examples — but the skill template still does.

Please convert these three diagrams to ASCII-only as well (using +, -, |, v, ^, -->) so the examples match the directive.

♻️ Suggested ASCII conversion for the three example diagrams
@@ Lines 162-176 (COLLABORATION SPECTRUM)
-      COLLABORATION SPECTRUM
-      ════════════════════════════════════════════
-
-      Awareness          Coordination         Sync
-          │                   │                 │
-          ▼                   ▼                 ▼
-      ┌────────┐         ┌────────┐        ┌────────┐
-      │Presence│         │Cursors │        │  CRDT  │
-      │  "3    │         │ Multi  │        │Conflict│
-      │online" │         │ select │        │  free  │
-      └────────┘         └────────┘        └────────┘
-          │                   │                 │
-       trivial            moderate           complex
+      COLLABORATION SPECTRUM
+      ============================================
+
+      Awareness          Coordination         Sync
+          |                   |                 |
+          v                   v                 v
+      +--------+         +--------+        +--------+
+      |Presence|         |Cursors |        |  CRDT  |
+      |  "3    |         | Multi  |        |Conflict|
+      |online" |         | select |        |  free  |
+      +--------+         +--------+        +--------+
+          |                   |                 |
+       trivial            moderate           complex
@@ Lines 185-205 (CURRENT AUTH FLOW)
-     ┌─────────────────────────────────────────────┐
-     │              CURRENT AUTH FLOW              │
-     └─────────────────────────────────────────────┘
-
-          ┌─────────────┼─────────────┐
-          ▼             ▼             ▼
-     ┌─────────┐  ┌─────────┐  ┌─────────┐
-     │ Google  │  │  GitHub │  │  Email  │
-     │  OAuth  │  │  OAuth  │  │  Magic  │
-     └────┬────┘  └────┬────┘  └────┬────┘
-          │             │             │
-          └─────────────┼─────────────┘
-
-                  ┌───────────┐
-                  │  Session  │
-                  └─────┬─────┘
-
-
-                  ┌───────────┐
-                  │   Perms   │
-                  └───────────┘
+     +---------------------------------------------+
+     |              CURRENT AUTH FLOW              |
+     +---------------------------------------------+
+                        |
+          +-------------+-------------+
+          v             v             v
+     +---------+  +---------+  +---------+
+     | Google  |  |  GitHub |  |  Email  |
+     |  OAuth  |  |  OAuth  |  |  Magic  |
+     +----+----+  +----+----+  +----+----+
+          |             |             |
+          +-------------+-------------+
+                        v
+                  +-----------+
+                  |  Session  |
+                  +-----+-----+
+                        |
+                        v
+                  +-----------+
+                  |   Perms   |
+                  +-----------+
@@ Lines 237-239 (CLI TOOL DATA STORAGE header)
-     ┌─────────────────────────────────────────────────┐
-     │          CLI TOOL DATA STORAGE                  │
-     └─────────────────────────────────────────────────┘
+     +-------------------------------------------------+
+     |          CLI TOOL DATA STORAGE                  |
+     +-------------------------------------------------+
@@ Lines 247-249 (status markers)
-     Deployment   embedded ✓      needs server ✗
-     Offline      yes ✓           no ✗
-     Single file  yes ✓           no ✗
+     Deployment   embedded [yes]  needs server [no]
+     Offline      yes [yes]       no [no]
+     Single file  yes [yes]       no [no]

Note: the parity-test hashes for getExploreSkillTemplate (line 33) and 'openspec-explore' (line 59) in test/core/templates/skill-templates-parity.test.ts will need to be regenerated after this change.

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

In `@src/core/templates/workflows/explore.ts` around lines 162 - 251, The template
still contains Unicode box-drawing characters in the three example diagrams
inside the explore skill template; update the diagrams in the
getExploreSkillTemplate (the "COLLABORATION SPECTRUM", "CURRENT AUTH FLOW", and
"CLI TOOL DATA STORAGE" examples) to ASCII-only characters (use + - | v ^ --> or
similar) to match the new directive and mirror the OPSX template cleanup, and
then regenerate the parity-test hashes referenced for getExploreSkillTemplate
and the 'openspec-explore' entry in
test/core/templates/skill-templates-parity.test.ts so tests reflect the changed
template content.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Outside diff comments:
In `@src/core/templates/workflows/explore.ts`:
- Around line 162-251: The template still contains Unicode box-drawing
characters in the three example diagrams inside the explore skill template;
update the diagrams in the getExploreSkillTemplate (the "COLLABORATION
SPECTRUM", "CURRENT AUTH FLOW", and "CLI TOOL DATA STORAGE" examples) to
ASCII-only characters (use + - | v ^ --> or similar) to match the new directive
and mirror the OPSX template cleanup, and then regenerate the parity-test hashes
referenced for getExploreSkillTemplate and the 'openspec-explore' entry in
test/core/templates/skill-templates-parity.test.ts so tests reflect the changed
template content.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: d8213da8-bef7-4d61-8f45-55a7c7140e4a

📥 Commits

Reviewing files that changed from the base of the PR and between 3c7a05c and 0d35db4.

📒 Files selected for processing (2)
  • src/core/templates/workflows/explore.ts
  • test/core/templates/skill-templates-parity.test.ts

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.

Visual artifact

1 participant