Skip to content

Comments

feat: integrated ralph skill and CLI improvements#166

Merged
AaronAbuUsama merged 20 commits intodevfrom
feat/ralph-skill-and-cli-fixes
Feb 1, 2026
Merged

feat: integrated ralph skill and CLI improvements#166
AaronAbuUsama merged 20 commits intodevfrom
feat/ralph-skill-and-cli-fixes

Conversation

@AaronAbuUsama
Copy link
Contributor

Summary

  • Replace ralphy-harness skill with new integrated ralph skill
  • Fix spinner to use log-update for reliable terminal rendering
  • Add MkDocs Material documentation site at apps/docs/

Changes

Ralph Skill (8da92b1)

  • New .claude/skills/ralph/SKILL.md with 5-phase workflow:
    Interview → Plan → Tasks → Approve → Execute
  • Uses Claude Code's built-in TaskCreate for task management
  • Executes via tmux session for background operation
  • Removed old .ralphy/ configuration files

CLI Improvements

  • Spinner now uses log-update (same as listr2) for reliable rendering
  • Spinner always visible - quiet mode only suppresses tool output
  • Contextual spinner messages: "Running Read...", "Thinking...", etc.
  • Added succeed() and fail() methods for final status

Documentation Site (712d6c0)

  • Full MkDocs Material site at apps/docs/
  • Getting Started, Concepts, Guides, and API Reference
  • GitHub Actions workflow for Pages deployment
  • Turborepo integration with docs#build and docs#dev tasks

Test plan

  • Invoke /ralph skill and verify interview flow works
  • Confirm tasks appear in Claude Code task list
  • Verify tmux execution with tmux attach -t ralph
  • Test spinner visibility in both quiet and verbose modes
  • Build docs with cd apps/docs && pip install -r requirements.txt && mkdocs build

🤖 Generated with Claude Code

AaronAbuUsama and others added 20 commits January 31, 2026 22:21
chore: merge dev into master for public release
In CI environments (CI=true), tsdown treats the "bundling dependencies"
warning as an error and exits with code 1. Adding inlineOnly: false
explicitly acknowledges that we intentionally bundle internal packages.

Verified fix works locally with CI=true bun run build returning exit 0.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The rolldown-plugin-dts plugin cannot resolve TypeScript project
references during bundling. Created separate configs:

- tsconfig.build.json: For tsdown - includes source paths directly
  without project references so types can be resolved inline
- tsconfig.src.json: For tsc -b typecheck - uses project references
  for proper incremental compilation

Verified with full clean builds locally with CI=true.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
These tests require real Anthropic API access which is not available
in the CI environment. Use describe.skipIf(process.env.CI) to skip:

- provider-streaming.test.ts
- provider-recording.test.ts
- recording-playback-e2e.test.ts

All 63 tests pass locally.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The provider-recording.test.ts file has two describe blocks that both
require live Anthropic API access. Added skip to the second one
(Incremental Recording) as well.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The CLI package is named @open-scaffold/cli, not @open-harness/cli.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Align with open-harness branding:
- Renamed package to @open-harness/cli
- Updated bin command from "scaffold" to "harness"
- Fixed repository URL
- Marked as private (not ready for publishing yet)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The @changesets/changelog-github generator requires the repo to be
specified for generating proper changelog links.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The scripts/version.mjs file doesn't exist and isn't needed.
changeset version handles everything already.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The changesets action needs write permissions to:
- contents: push the changeset-release/master branch
- pull-requests: create version PRs

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Use the Open Harness Release Bot GitHub App to generate tokens
for creating PRs, instead of the default GITHUB_TOKEN which has
limited permissions.

Requires secrets:
- RELEASE_BOT_APP_ID
- RELEASE_BOT_PRIVATE_KEY

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Complete rebrand of the project to Open Harness:

- Renamed @open-scaffold/core → @open-harness/core
- Renamed @open-scaffold/server → @open-harness/server
- Renamed @open-scaffold/client → @open-harness/client
- Renamed @open-scaffold/testing → @open-harness/testing
- Renamed @open-scaffold/cli → @open-harness/cli (private)
- Updated tsconfig.base.json path aliases
- Updated all internal imports across packages and apps
- Updated tsdown noExternal configurations
- Updated bun.lock with new package names

All internal packages remain private - only the unified
`open-harness` SDK and `@open-harness/ralph` CLI will be published.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Changed root test script from `vitest run` to `turbo run test` so
  tests run in each package with proper module aliases
- Simplified changeset-publish to just `changeset publish` since
  build and tests are already run in the workflow
- Added vitest.config.ts to harness-loop with passWithNoTests since
  the package has no tests yet

This fixes CI failures where vitest at root couldn't resolve
@open-harness/* module imports.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
The package name `open-harness` is already taken on npm by another user.
Renamed to `@open-harness/sdk` which is under our organization scope.

Usage:
```typescript
import { run, workflow, agent } from "@open-harness/sdk"
import { EventStore } from "@open-harness/sdk/core"
```

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Replace the old ralphy-harness skill with a new, streamlined ralph skill that
works hand-in-hand with the @open-harness/ralph CLI.

Key changes:
- New `.claude/skills/ralph/SKILL.md` with 5-phase workflow:
  Interview → Plan → Tasks → Approve → Execute
- Uses Claude Code's built-in TaskCreate for task management
- Executes via tmux session for background operation
- Spinner now uses log-update for reliable terminal rendering
- Spinner always visible (quiet mode only suppresses tool output)
- Removed old .ralphy/ configuration files

CLI improvements:
- Replaced custom ANSI spinner with log-update (listr2's approach)
- Added succeed/fail methods for final status display
- Observer always starts spinner for progress visibility
- Spinner updates contextually: "Running X...", "Thinking...", etc.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Add comprehensive documentation site at apps/docs using MkDocs with
Material theme. Created autonomously by Ralph CLI as first real-world
usage test.

Structure:
- Getting Started guide with installation and quickstart
- Concepts section (workflows, agents, phases, events)
- Guides for building workflows and React integration
- API reference documentation

Includes:
- GitHub Actions workflow for Pages deployment
- Turborepo integration with docs#build and docs#dev tasks
- Python requirements.txt for MkDocs dependencies
- Ralph plan file documenting the PRD for this work

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@greptile-apps
Copy link

greptile-apps bot commented Feb 1, 2026

Too many files changed for review. (127 files found, 100 file limit)

@AaronAbuUsama AaronAbuUsama merged commit b573a12 into dev Feb 1, 2026
2 checks passed
AaronAbuUsama added a commit that referenced this pull request Feb 1, 2026
feat: integrated ralph skill and CLI improvements (#166)
@AaronAbuUsama AaronAbuUsama deleted the feat/ralph-skill-and-cli-fixes branch February 1, 2026 10:33
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