ForgeFlow / User guide

ForgeFlow / Reference

Branch Trial

Shell examples run from the target project root. For scripts/forgeflow/ commands, use the helper path from your ForgeFlow checkout, or replace that prefix with "${CODEX_HOME:-$HOME/.codex}/forgeflow/scripts/forgeflow/" for Codex and "$HOME/.claude/forgeflow/scripts/forgeflow/" for Claude Code. Run JavaScript helpers with node and shell helpers with bash. Replace <project> with the actual project folder name before running a placeholder example.

Use this flow to try Forgeflow on one real branch without committing generated local state. It is meant for adoption trials, demos, and side-by-side comparisons against no-agent or single-agent review.

Setup

Start from a git branch with the change you want to evaluate:

git status --short
git branch --show-current

If the project does not already ignore Forgeflow local state, add these patterns to a local exclude file instead of changing the repo:

printf ".forgeflow/\n.forgeflow-budget.json\n" >> "$(git rev-parse --git-path info/exclude)"

This keeps trial artifacts local while avoiding a repository change.

Verify Install

From Claude Code:

/forgeflow-version
/forgeflow-health

From a checkout or installed helper root:

scripts/forgeflow/ensure-forgeflow-state.sh
scripts/forgeflow/health-check.js --fix --json

If you installed without a checkout, replace scripts/forgeflow/ with:

~/.claude/forgeflow/scripts/forgeflow/

Run The Trial

For Claude Code, run one review on the branch:

/review

For Codex use $forge-review review the current changes; /review is a Codex built-in.

For a narrower Claude trial, pass a commit range or paths:

/review HEAD~3..HEAD
/review src/auth.ts src/db.ts

Then inspect local context and budget signals:

scripts/forgeflow/advise-context.js --root .forgeflow --record --json
scripts/forgeflow/summarize-context-telemetry.js --root .forgeflow --json
scripts/forgeflow/check-context-budget.js --root .forgeflow --warn-only --json

Compare Results

Record the outcome after human triage. Use review.workflow to compare workflows:

{
  "schema_version": "1",
  "change_id": "local-branch-name",
  "review": {
    "workflow": "forgeflow",
    "mode": "full-mode",
    "agents_used": ["builder_reviewer", "guardian_reviewer"],
    "verifier_decisions": []
  },
  "outcome": {
    "findings_total": 2,
    "findings_confirmed": 1,
    "findings_rejected": 1,
    "review_minutes": 18,
    "auto_fix_success": false,
    "post_merge_regression": false,
    "finding_classes": [
      { "class": "auth/session/permissions", "total": 1, "confirmed": 1, "rejected": 0 },
      { "class": "missing-transaction", "total": 1, "confirmed": 0, "rejected": 1 }
    ]
  }
}

Append and summarize locally:

scripts/forgeflow/record-review-outcome.js --input outcome.json --out ".forgeflow/$(basename "$PWD")/review-outcomes.jsonl" --json
scripts/forgeflow/render-evaluation-report.js --outcomes ".forgeflow/$(basename "$PWD")/review-outcomes.jsonl" --context-root .forgeflow --public

For a side-by-side comparison, repeat the same change with review.workflow set to no-agent, single-agent, and forgeflow. See Workflow Comparison for the full comparison flow.

Clean Up

Review generated local state:

git status --short
find .forgeflow -maxdepth 3 -type f | sort

Leave .forgeflow/ in place to preserve memory and trend history. If the trial is done, identify the files created by this trial and remove only those after reviewing them. Do not delete the entire state directory or budget configuration in an existing project: they can predate the trial. A disposable clone is the simplest place to test a complete clean-state lifecycle.

Do not commit trial output unless the project explicitly wants those local records in version control.