Two issues found running /ralph-loop end-to-end on a real project:
1. single-pr mode mirrored the toolkit's autopromote rule (blockers must
be `Done`), which halts after each phase since tickets stay
`In progress` until the final PR merges. That contradicts the
README's "one PR for the whole DAG" semantics. Now `single-pr`
counts a blocker resolved at status `In progress | In review | Done`
so the loop completes the whole DAG in one invocation. `per-ticket`
keeps the strict `Done` rule.
2. v1 failure handling treated all failures as ticket-failures and
parked the issue as `Needs human` with a failure comment — wrong
for environmental failures (Claude usage limit, network, interrupt)
where the issue itself is fine. Now distinguished: env failures
reset issue to `Ready` + un-assign; ticket failures park as before.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Subscription-based counterpart to `agentic-toolkit run`. Instead of
sandcastle + Docker + Anthropic API, dispatches each ready ticket to
a fresh Claude Code subagent (general-purpose) — same fresh-context
property as per-container sandcastle runs, but zero infra.
Trade-off: no sandbox isolation. Recommend running on a clean checkout.
Mirrors the CLI runner's project schema, phase logic, branch naming,
status transitions, and idempotency. v1 fails on first error (no retry
state machine yet) — failure-handler.ts parity is future work.
README updated with two-path workflow diagram and comparison table.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
`claude` is not a valid value for the skills CLI `--agent` flag;
correct value is `claude-code`. Without this, setup.sh fails with
"Invalid agents: claude" before installing any skills.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
The sandcastle package exposes named exports for sandbox providers;
default-importing fails the typecheck.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
Initial implementation of Domna's agentic toolkit per PRD #1:
- Runner CLI (src/cli.ts) wrapping sandcastle.run() with Docker provider
- Pure modules: PhaseScheduler, PromptBuilder, FailureHandler with tests
- Project Status v2 GraphQL client + parsers with tests
- BranchManager (git/gh wrapper) and LoopOrchestrator (per-tick algorithm)
- Variant-aware: per-ticket (one PR per issue, phase-gated, exit between phases)
vs single-pr (one PR for the whole DAG, halt on failure)
- /to-project skill that creates a repo-level project, configures the Status
schema the runner expects, and sets initial issue statuses
- setup.sh that installs Matt Pocock skills + Domna skills via npx skills
Out of scope at v1: remote runners, Slack notifications, stacked PRs,
cross-repo projects, SHA-pinning of upstream skills (tracks HEAD until the
skills CLI supports repo#sha).
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>