Files
ci/opencode/ci/workflows/rollback.md
T
CI 05917b9808 feat(P02): add opencode integration layer — agents, workflows, commands, references, contexts
---ci---
phase: 2
milestone: v0.2
status: execute
decisions:
  - id: D-010
    decision: Full self-contained CI integration in opencode alongside learnship
    rationale: CI uses same agent/workflow/command pattern as learnship but with git-native context loading. Commands prefixed ci- vs learnship-. Zero learnship dependencies.
    confidence: 0.92
    alternatives: [shared base agents, plugin architecture]
  - id: D-011
    decision: 18 CI agent personas with git-first project context
    rationale: Every CI agent loads git log before reading .ci/ files. This ensures the git log IS the project memory — the core v0.2.0 design principle.
    confidence: 0.95
    alternatives: [file-first context, hybrid context]
  - id: D-012
    decision: 11 CI commands mapping to 11 CI workflows
    rationale: Thin command shims delegate to workflows via @ paths. Matches learnship pattern for consistency. Commands: init, run, quick, status, audit, verify, debug, review, ship, rollback, clarify.
    confidence: 0.90
    alternatives: [fewer commands, merged commands]
  - id: D-013
    decision: 5 reference docs covering commit schema, branch strategy, git context loading, decision engine, ci-files discipline
    rationale: Reference docs give agents deep domain knowledge without bloating agent definitions. Matches learnship reference pattern.
    confidence: 0.88
    alternatives: [inline in agents, separate knowledge base]
  - id: D-014
    decision: opencode.json adds ~/.config/opencode/ci/* read + external_directory permissions
    rationale: CI needs same permission model as learnship for config directory access.
    confidence: 0.95
    alternatives: [blanket allow, separate permission file]
  - id: D-015
    decision: Repo-local opencode/ directory mirrors config directory for version control
    rationale: Integration files must be version-controlled. The opencode/ directory in the repo can be installed to ~/.config/opencode/ during setup.
    confidence: 0.85
    alternatives: [separate repo, git submodule]
---/ci---

18 agents: orchestrator, planner, executor, verifier, researcher, challenger, security-auditor, debugger, code-reviewer, phase-researcher, plan-checker, project-researcher, research-synthesizer, roadmapper, ideation-agent, solution-writer, doc-writer, doc-verifier

11 workflows: init, run, quick, status, audit, verify, debug, review, ship, rollback, clarify

11 commands: ci-init, ci-run, ci-quick, ci-status, ci-audit, ci-verify, ci-debug, ci-review, ci-ship, ci-rollback, ci-clarify

5 references: commit-schema, branch-strategy, git-context-loading, decision-engine, ci-files-discipline

3 contexts: dev, research, review
2026-05-29 13:27:00 +00:00

1.8 KiB

description
description
Rollback CI phase — revert the last phase or specified phase by resetting to its pre-phase state

CI Rollback

Rollback a CI phase by reverting to the state before the phase started. Uses git to find the exact commit to reset to.

Usage: ci-rollback [phase_number]

If no phase specified, rolls back the current (most recent) phase.

Step 1: Load Git Context

git log --max-count=30
git branch -a

Find the phase branch and its merge commit.

Step 2: Identify Rollback Point

For the specified phase:

  1. Find the merge commit that completed the phase
  2. Find the commit just before the phase branch was created
  3. This is the rollback point
git log --grep="P##" --format="%H %s" | head -20

Step 3: Confirm (Safety Gate)

Even in full autonomy mode, destructive operations need confirmation:

⚠ ROLLBACK: This will revert Phase [N] — [name]

Rollback point: [commit hash] [subject]
Changes to be lost: [N] commits

Proceed? (y/n)

Wait for confirmation. This is a safety gate — always confirm destructive operations.

Step 4: Execute Rollback

git revert [merge_commit_hash]

Or for a hard rollback (not recommended, only if explicitly requested):

git reset --hard [rollback_point]

Step 5: Update State

  • Delete the phase branch (if not already removed)
  • Update .ci/REQUIREMENTS.md — mark phase requirements as blocked
  • Update .ci/ROADMAP.md — mark phase as not_started

Commit the rollback:

chore(P##): rollback [phase-name] — [reason]

---ci---
phase: [N]
milestone: [vX.X]
status: specify
escalations:
  - id: E-XXX
    type: rollback
    description: Phase rolled back
    resolution: auto
---/ci---

Step 6: Report

Report rollback complete, rollback point, and next steps.