[Extension]: Update Ralph Loop to v1.5.0
- Langage dominant
- Python
- Étoiles
- 137k
- Forks
- 12.3k
- Merge moyen
- 2 j 12 h
- PR mergées (30 j)
- 159
Description
This updates the existing community-catalog entry `ralph` from **1.2.1 to 1.5.0**. The previous catalog update was #3337 (automation PR #3365).
### Extension ID
ralph
### Extension Name
Ralph Loop
### Version
1.5.0
### Description
Autonomous implementation loop using AI agent CLI
### Author
Rubiss
### Repository URL
https://github.com/Rubiss-Projects/spec-kit-ralph
### Download URL
https://github.com/Rubiss-Projects/spec-kit-ralph/archive/refs/tags/v1.5.0.zip
### License
MIT
### Homepage (optional)
https://github.com/Rubiss-Projects/spec-kit-ralph
### Documentation URL (optional)
https://github.com/Rubiss-Projects/spec-kit-ralph/blob/v1.5.0/README.md
### Changelog URL (optional)
https://github.com/Rubiss-Projects/spec-kit-ralph/blob/v1.5.0/CHANGELOG.md
### Required Spec Kit Version
>=0.8.5
### Required Tools (optional)
- git - required
- copilot - optional, default agent CLI
- codex - optional, supported agent CLI
- claude - optional, supported agent CLI
- opencode - optional, newly supported agent CLI
At runtime, install and configure one of the supported agent CLIs. OpenCode is not a new mandatory dependency.
### Number of Commands
2
### Number of Hooks (optional)
1
### Tags
implementation, automation, loop, copilot, codex, claude, opencode
### Key Features
- Autonomous implementation of the active feature's `tasks.md` through fresh agent iterations.
- Bash and PowerShell orchestrators supporting Copilot, Codex, Claude Code, and now OpenCode.
- Canonical durable `ralph-memory.md`, append-only progress history, coordinated work-unit commits, and strict clean-tree completion checks.
- Configurable legacy or conventional commit policy, including optional scopes and issue suffixes.
- Launcher requires fresh orchestrator startup evidence before reporting success, with explicit terminal fallbacks and bounded verification.
- Supports meaningful state-only work, task expansion, and incremental completion of multi-task user stories.
### Testing Checklist
- [x] Extension installs successfully via download URL
- [x] All commands execute without errors
- [x] Documentation is complete and accurate
- [x] No security vulnerabilities identified
- [x] Tested on at least one real project
### Submission Requirements
- [x] Valid `extension.yml` manifest included
- [x] README.md with installation and usage instructions
- [x] LICENSE file included
- [x] GitHub release created with version tag
- [x] All command files exist and are properly formatted
- [x] Extension ID follows naming conventions (lowercase-with-hyphens)
### Testing Details
**Published release and archive installation (2026-09-11):**
- Release publication workflow passed: https://github.com/Rubiss-Projects/spec-kit-ralph/actions/runs/34658375443
- Tag `v1.5.0` resolves to `81acf8107bbbf01ffff1e0a920be0b1f6f9cc17f`.
- Downloaded the tag archive successfully. SHA-256: `b7a47838a2036312024b94c6e28307010a0da44a11e09ea6c9a3af24a7a66fab`.
- Initialized a fresh project with the locally installed Spec Kit `0.12.12.dev0` (upstream commit `1be42992e64b08ff0dce3d7a914eaabf04284ffb`), OpenCode integration, and PowerShell scripts.
- Installed using the exact Download URL above. `specify extension list` reports **Ralph Loop v1.5.0**, **2 commands**, **1 hook**, enabled. Both OpenCode command files were registered.
- Validated manifest/version/tool metadata, command frontmatter, license, canonical config and memory template, exact installed script bytes against the archive, LF shell/template line endings, versioned README examples, and exclusion of repository-only files from the installed extension.
- Repeated the real free-model OpenCode E2E using the installed release: one iteration, three unchanged Node tests passing, exit 0, valid coordinated commit `4c27daf`, and clean Git status. The new Spec Kit development build required feature selection; the agent set `SPECIFY_FEATURE_DIRECTORY` and included the generated `.specify/feature.json` with the four expected work-unit files. Neither the extension/prerequisite scripts nor tests were changed.
- Independently reran the three Node tests and inspected commit contents. Both installed orchestrators then exited 0 on the completed feature with fresh `All tasks are already complete!` and standalone completion output.
- Release PR received one Codex review with no findings. Final release commit also passed the main-branch Tests and CodeQL workflows.
**Regression and review evidence:**
- Bash: 297 passing regression assertions; PowerShell 7: 341 passing assertions. Release CI: https://github.com/Rubiss-Projects/spec-kit-ralph/actions/runs/34658071314
- Targeted native OpenCode invocation under Windows PowerShell 5.1: 16 passing assertions, including nonzero exit handling and stderr under strict caller preferences.
- Both feature PRs received two Codex reviews, with initial findings fixed and follow-up reviews clean: https://github.com/Rubiss-Projects/spec-kit-ralph/pull/54 and https://github.com/Rubiss-Projects/spec-kit-ralph/pull/55
- Release PR: https://github.com/Rubiss-Projects/spec-kit-ralph/pull/56
**Real agent end-to-end tests:**
- OpenCode 1.18.30 using the free `opencode/big-pickle` model; actual provider calls rather than a mocked CLI.
- Two separate disposable Git projects on Windows, using PowerShell 7 and Bash through Git for Windows. Each started with a failing CommonJS greeting implementation and three existing Node tests.
- Each completed in one iteration: all three unchanged tests passed; source, task state, canonical memory, and progress were committed together; the normal completion gates passed; the orchestrator exited 0 with a clean Git tree. Tests, changed paths, and commit counts were independently checked after the agent finished.
**Command-level validation completed on Windows (2026-09-11):**
Both commands in the v1.5.0 manifest have now been exercised. The installed release files and registered commands were not modified for these tests.
| Command | Host / backend | Observed result |
| --- | --- | --- |
| `speckit.ralph.iterate` | Registered OpenCode command, invoked with `opencode run --command speckit.ralph.iterate`; free `opencode/big-pickle` | Completed the greeting task, passed all three unchanged Node tests, wrote tasks/memory/progress with the source change in one commit (`98bdada`), emitted standalone COMPLETE, and exited 0 with clean Git status. |
| `speckit.ralph.run` | Codex executing the installed Markdown command; visible Windows Terminal + PowerShell 7; OpenCode backend using free `opencode/big-pickle` | Validated prerequisites/configuration, dispatched one loop from a repository path containing spaces, and verified fresh feature/iteration output in **1.7 seconds**. The launcher returned after startup verification. The separately monitored child subsequently completed one iteration, passed all three unchanged tests, made one coordinated commit (`8d280da`), and exited 0 with clean Git status. |
**Native launcher evidence:**
- Windows Terminal tab title: `Ralph-Launcher-E2E`. A read-only Windows visibility check confirmed the window was visible, not minimized, and not cloaked; the console remained open after the loop completed.
- The child ran in the correct repository and received the requested feature, task/spec paths, model, iteration limit, and OpenCode backend. Startup verification observed the actual `Ralph Loop - 001-opencode-smoke` and `Iteration 1 of 1` lines from a fresh log outside Git, before the model finished.
- Process inspection found exactly one active orchestrator. No task implementation or work-unit commit occurred in the launcher host.
- Tests were independently rerun after both command tests. Each implementation commit changed exactly source, tasks, canonical memory, and progress; the tests, installed extension, prerequisite scripts, and registered commands were unchanged.
**Test setup and scope:** Initial attempts to have cheap models act as the launcher host generated invalid Windows Terminal/PowerShell syntax. Those attempts were stopped without a successful loop launch. The successful launcher test used Codex as the host and retained the free OpenCode model as the implementation backend. Fixture memory metadata was initialized from the canonical template before the successful run. These results verify both commands on the stated Windows host/backend combination, alongside the previously reported Bash runtime tests; they do not certify every model's shell generation or every OS-specific terminal adapter.
### Example Usage
```bash
specify extension add ralph --from https://github.com/Rubiss-Projects/spec-kit-ralph/archive/refs/tags/v1.5.0.zip
specify extension list
# From a host with Spec Kit commands and a visible terminal:
/speckit.ralph.run --agent-cli opencode --model opencode/big-pickle --max-iterations 10
```
The model ID above was exercised during release validation. Select a model available from your configured OpenCode provider.
### Proposed Catalog Entry
```json
{
"ralph": {
"name": "Ralph Loop",
"id": "ralph",
"description": "Autonomous implementation loop using AI agent CLI",
"author": "Rubiss",
"version": "1.5.0",
"download_url": "https://github.com/Rubiss-Projects/spec-kit-ralph/archive/refs/tags/v1.5.0.zip",
"repository": "https://github.com/Rubiss-Projects/spec-kit-ralph",
"homepage": "https://github.com/Rubiss-Projects/spec-kit-ralph",
"documentation": "https://github.com/Rubiss-Projects/spec-kit-ralph/blob/v1.5.0/README.md",
"changelog": "https://github.com/Rubiss-Projects/spec-kit-ralph/blob/v1.5.0/CHANGELOG.md",
"license": "MIT",
"category": "code",
"effect": "read-write",
"requires": {
"speckit_version": ">=0.8.5",
"tools": [
{
"name": "copilot",
"required": false
},
{
"name": "codex",
"required": false
},
{
"name": "claude",
"required": false
},
{
"name": "opencode",
"required": false
},
{
"name": "git",
"required": true
}
]
},
"provides": {
"commands": 2,
"hooks": 1
},
"tags": [
"implementation",
"automation",
"loop",
"copilot",
"codex",
"claude",
"opencode"
],
"verified": false,
"downloads": 0,
"stars": 0,
"created_at": "2026-03-09T00:00:00Z",
"updated_at": "2026-09-11T23:31:29Z"
}
}
```
### Additional Context
Release: https://github.com/Rubiss-Projects/spec-kit-ralph/releases/tag/v1.5.0
Changes since the catalog's current **1.2.1**:
- **1.3.0:** canonical durable memory, coordinated work-unit history validation, and strict completion checks.
- **1.3.1:** smaller installed payloads, canonical config cleanup, and contributor/CI improvements.
- **1.3.2:** allow reruns after clean human-authored spec or task refinements.
- **1.4.0:** configurable nested commit policy with legacy/conventional styles and subject validation.
- **1.4.1:** accept coordinated state-only review/analysis work while rejecting bookkeeping-only commits.
- **1.4.2:** accept valid task expansion and incremental work-unit commits across multi-task stories.
- **1.5.0:** official OpenCode support; fix Bash's premature failure-counter exit; require verified launcher startup.
Upgrade notes: the Spec Kit minimum remains `>=0.8.5`, Copilot remains the default, and existing agent backends remain supported. Missing feature memory is initialized from the packaged canonical template; malformed existing memory is reported without being rewritten. Completion now requires zero unchecked tasks, the exact terminal memory handoff, valid coordinated work-unit commits, and a clean repository. Conventional commit policy is opt-in. Launcher use requires a visible terminal with readable startup output; direct script invocation remains documented.
The proposed entry preserves the existing `created_at`, `downloads`, `stars`, `verified`, category, and effect values. It adds OpenCode to optional tools and preserves the existing tags while adding `opencode`, matching the release manifest.
Guide de contribution
Ouvrir le guide de contribution
Piste de recherche
Locate the existing `ralph` community-catalog entry and compare it with the proposed catalog entry in this issue and the previous update in #3337. Update the metadata to Ralph Loop v1.5.0, then verify the referenced download URL, version, commands, hook, tools, and links are represented correctly.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Évaluation
- Stack technique
- git
- Domaine
- tooling
- Type d'issue
- Fonctionnalité
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Activité
- Active
- Clarté
- Plutôt claire
- Accessibilité débutants
- 72/100