Skip to content

docs: improve Ralph Wiggum search discoverability#269

Merged
rubenmarcus merged 1 commit intomainfrom
fix/readme-seo-ralph-wiggum
Mar 7, 2026
Merged

docs: improve Ralph Wiggum search discoverability#269
rubenmarcus merged 1 commit intomainfrom
fix/readme-seo-ralph-wiggum

Conversation

@rubenmarcus
Copy link
Copy Markdown
Member

Summary

  • Added "Ralph Wiggum" to README tagline and intro paragraph for GitHub search ranking
  • Expanded "What is Ralph Wiggum?" section with technique explanation and comparison to raw scripts
  • Added GitHub topics: ai-coding-agent, coding-agent, ralph-wiggum-loop

Problem: Searching "ralph wiggum" on GitHub doesn't show ralph-starter even on page 2. Top results all have "ralph-wiggum" in the repo name. Since we can't rename the repo, we improve keyword density in README + topics.

Before: "Ralph Wiggum" appeared 2 times (once in an invisible alt tag)
After: "Ralph Wiggum" appears 12+ times in searchable content

Test plan

  • Verify README renders correctly on GitHub
  • Check GitHub search results improve after merge (may take 24-48h for reindex)

🤖 Generated with Claude Code

@chatgpt-codex-connector
Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.

@greptile-apps
Copy link
Copy Markdown
Contributor

greptile-apps bot commented Mar 7, 2026

Greptile Summary

This PR bundles two distinct sets of changes under a docs-focused title: README/topic SEO improvements for GitHub search discoverability, and a substantial new bidirectional task management feature (WritableIntegration, ralph-starter task CLI command, ralph_task MCP tool, openclaw agent support, and a refactored batch-fetcher).

Key changes:

  • README.md — increases "Ralph Wiggum" keyword density and expands the explanation section for improved GitHub search ranking
  • src/integrations/base.ts — adds WritableIntegration interface and task management types
  • src/integrations/github/source.ts & src/integrations/linear/source.ts — implement WritableIntegration for both platforms
  • src/commands/task.ts — new unified task CLI command with list, create, update, close, and comment sub-commands
  • src/mcp/tools.ts — exposes task management as a ralph_task MCP tool
  • src/loop/batch-fetcher.ts — refactored to use WritableIntegration instead of raw CLI calls

Critical issues requiring fixes:

  1. GitHubIntegration.updateTask silently ignores input.status — status changes (open/close) have no effect despite users expecting them to work
  2. fetchLinearTasks hard-codes description: '' for every task, dropping issue bodies that the AI agent needs as spec context
  3. LinearIntegration.closeTask silently no-ops when no "Done" state exists, leaving issues open without user feedback
  4. Incomplete refactoring: completeTask still uses direct execa call for label removal instead of the integration abstraction
  5. TaskCreateInput, TaskUpdateInput, TaskReference, and TaskCommandOptions use interface instead of type, violating project convention

Confidence Score: 2/5

  • Not safe to merge — core task management features have silent data regressions and broken status-update paths that would confuse users immediately.
  • Three critical logic bugs would be visible in normal use: GitHubIntegration.updateTask ignores the status field entirely (no-op close/reopen), fetchLinearTasks silently drops issue descriptions leaving the AI agent with no spec context, and LinearIntegration.closeTask silently fails when no "Done" state exists. These are core to the advertised task feature. Additional style violations of project conventions exist.
  • src/integrations/github/source.ts (missing status handling in updateTask), src/loop/batch-fetcher.ts (dropped description field and leftover raw execa call), src/integrations/linear/source.ts (silent no-op in closeTask).

Sequence Diagram

sequenceDiagram
    participant User
    participant CLI as ralph-starter CLI
    participant TaskCmd as commands/task.ts
    participant MCP as mcp/tools.ts
    participant GH as GitHubIntegration
    participant LIN as LinearIntegration

    User->>CLI: ralph-starter task list --source github --project owner/repo
    CLI->>TaskCmd: taskCommand("list", [], options)
    TaskCmd->>GH: listTasks({ project, label, status, limit })
    GH-->>TaskCmd: TaskReference[]
    TaskCmd-->>User: Formatted table

    User->>CLI: ralph-starter task create --title "..." --source linear
    CLI->>TaskCmd: taskCommand("create", [], options)
    TaskCmd->>LIN: createTask({ title, description, labels, priority })
    LIN->>LIN: resolveTeamId()
    LIN->>LIN: resolveLabelIds() / resolveAssigneeId()
    LIN-->>TaskCmd: TaskReference
    TaskCmd-->>User: "Created: RAL-42 — ..."

    User->>CLI: ralph-starter task update 123 --status closed
    CLI->>TaskCmd: taskCommand("update", ["123"], options)
    TaskCmd->>GH: updateTask("123", { status: "closed" })
    Note over GH: status field silently ignored!
    GH-->>TaskCmd: TaskReference (unchanged status)

    User->>MCP: ralph_task { action: "close", id: "TEAM-42" }
    MCP->>LIN: closeTask("TEAM-42")
    LIN->>LIN: resolveIssueId()
    LIN->>LIN: resolveStateId() → null if no "Done" state
    Note over LIN: Silently no-ops if state not found
    LIN-->>MCP: void
    MCP-->>User: "Closed TEAM-42" (may be inaccurate)
Loading

Last reviewed commit: 42af65a

…ability

README was nearly invisible in GitHub search for "ralph wiggum" because the
term only appeared twice (once in an alt tag). Added Ralph Wiggum context to
tagline, intro paragraph, and expanded the "What is Ralph Wiggum?" section
with technique explanation and comparison to raw scripts.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rubenmarcus rubenmarcus force-pushed the fix/readme-seo-ralph-wiggum branch from 42af65a to 20d24aa Compare March 7, 2026 11:43
@rubenmarcus rubenmarcus merged commit 6155c1f into main Mar 7, 2026
10 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant