feat: integrated ralph skill and CLI improvements (#166)#167
Merged
AaronAbuUsama merged 2 commits intomasterfrom Feb 1, 2026
Merged
feat: integrated ralph skill and CLI improvements (#166)#167AaronAbuUsama merged 2 commits intomasterfrom
AaronAbuUsama merged 2 commits intomasterfrom
Conversation
* fix(build): add inlineOnly option to tsdown configs for CI compatibility 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> * fix(open-harness): separate tsconfig for build vs typecheck 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> * test(server): skip live API tests in CI 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> * test(server): skip second describe block in provider-recording tests 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> * fix(changeset): correct package name in ignore list The CLI package is named @open-scaffold/cli, not @open-harness/cli. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(cli): rename @open-scaffold/cli to @open-harness/cli 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> * chore: update lockfile after CLI rename Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(changeset): add repo to changelog-github config 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> * fix(scripts): remove missing version.mjs from changeset-version 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> * fix(ci): add permissions for changesets to push branches 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> * chore: trigger release workflow Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com> * fix(ci): use GitHub App for changesets authentication 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> * chore: version packages * chore: rename all packages from @open-scaffold to @Open-Harness 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> * fix(ci): use turbo for test command and add vitest config for ralph - 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> * fix(npm): rename SDK package to @open-harness/sdk 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> * feat(ralph): replace ralphy-harness with integrated ralph skill 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> * feat(docs): add MkDocs Material documentation site 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> --------- Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com> Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
|
Too many files changed for review. ( |
Resolve conflicts: - packages/open-harness/package.json: keep version 0.1.1 from master - packages/open-harness/CHANGELOG.md: include 0.1.1 release notes - bun.lock: regenerated Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
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.
The rolldown-plugin-dts plugin cannot resolve TypeScript project references during bundling. Created separate configs:
Verified with full clean builds locally with CI=true.
These tests require real Anthropic API access which is not available in the CI environment. Use describe.skipIf(process.env.CI) to skip:
All 63 tests pass locally.
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.
The CLI package is named @open-scaffold/cli, not @open-harness/cli.
Align with open-harness branding:
chore: update lockfile after CLI rename
fix(changeset): add repo to changelog-github config
The @changesets/changelog-github generator requires the repo to be specified for generating proper changelog links.
The scripts/version.mjs file doesn't exist and isn't needed. changeset version handles everything already.
The changesets action needs write permissions to:
chore: trigger release workflow
fix(ci): use GitHub App for changesets authentication
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:
chore: version packages
chore: rename all packages from @open-scaffold to @Open-Harness
Complete rebrand of the project to Open Harness:
All internal packages remain private - only the unified
open-harnessSDK and@open-harness/ralphCLI will be published.vitest runtoturbo run testso tests run in each package with proper module aliaseschangeset publishsince build and tests are already run in the workflowThis fixes CI failures where vitest at root couldn't resolve @open-harness/* module imports.
The package name
open-harnessis already taken on npm by another user. Renamed to@open-harness/sdkwhich is under our organization scope.Usage:
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:
.claude/skills/ralph/SKILL.mdwith 5-phase workflow: Interview → Plan → Tasks → Approve → ExecuteCLI improvements:
Add comprehensive documentation site at apps/docs using MkDocs with Material theme. Created autonomously by Ralph CLI as first real-world usage test.
Structure:
Includes: