Class: Ocak::Commands::Hiz

Inherits:
Dry::CLI::Command
  • Object
show all
Includes:
StepComments
Defined in:
lib/ocak/commands/hiz.rb

Defined Under Namespace

Classes: HizState

Constant Summary collapse

HIZ_STEPS =
[
  { agent: 'implementer', role: 'implement', model: ClaudeRunner::MODEL_SONNET },
  { agent: 'reviewer', role: 'review', model: ClaudeRunner::MODEL_HAIKU, parallel: true },
  { agent: 'security-reviewer', role: 'security', model: ClaudeRunner::MODEL_SONNET, parallel: true }
].freeze

Instance Method Summary collapse

Methods included from StepComments

#post_step_comment, #post_step_completion_comment

Instance Method Details

#call(issue:, **options) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
# File 'lib/ocak/commands/hiz.rb', line 34

def call(issue:, **options)
  @config = Config.load
  issue_number = issue.to_i

  if options[:dry_run]
    print_dry_run(issue_number)
    return
  end

  @logger = logger = build_logger(issue_number)
  watch_formatter = options[:watch] ? WatchFormatter.new : nil
  claude = ClaudeRunner.new(config: @config, logger: logger, watch: watch_formatter)
  issues = IssueBackend.build(config: @config, logger: logger)

  logger.info("=== Hiz (fast mode) for issue ##{issue_number} ===")

  run_fast_pipeline(issue_number, claude: claude, logger: logger, issues: issues)
rescue Config::ConfigNotFound => e
  warn "Error: #{e.message}"
  exit 1
end