feat: api-derived commit subjects when PR_BODY is empty #37
No reviewers
Labels
No labels
Agent
Compat/Breaking
Kind/Bug
Kind/Documentation
Kind/Enhancement
Kind/Feature
Kind/Security
Kind/Testing
Priority
Critical
Priority
High
Priority
Low
Priority
Medium
Reviewed
Confirmed
Reviewed
Duplicate
Reviewed
Invalid
Reviewed
Won't Fix
Status
Abandoned
Status
Blocked
Status
Need More Info
No milestone
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
joshtronic/igor!37
Loading…
Reference in a new issue
No description provided.
Delete branch "feat/api-derived-commit-subject"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Generic fallback subjects ("chore: discretionary website tick")
were unhelpful in PR titles. Real example: a tick fixed broken
/now page links but the PR ended up titled "chore: discretionary
website tick" because Claude didn't write a PR_BODY.md first
item the harness could use.
New tier-2 fallback: API-direct call to Haiku with the diff,
asking for a one-line conventional-commit subject. Single-shot,
no tool use, ~$0.005 per call, ~1-2s latency. Only fires when
PR_BODY.md is missing or empty -- when Claude writes a good
first item, that's still preferred (free, semantic, in his
voice).
New helper
claude_completedoes the API call generically:curl POST /v1/messages, returns text. Reusable for future
in-harness thinking tasks (classification, summarization, etc.).
Model defaults to Haiku via new optional IGOR_MODEL_THINKING
env var; documented in .env.example.
Three-tier subject derivation now:
Both tier-1 and tier-3 call sites updated to pass worktree path
so the diff is accessible to the API tier.
Generic fallback subjects ("chore: discretionary website tick") were unhelpful in PR titles. Real example: a tick fixed broken /now page links but the PR ended up titled "chore: discretionary website tick" because Claude didn't write a PR_BODY.md first item the harness could use. New tier-2 fallback: API-direct call to Haiku with the diff, asking for a one-line conventional-commit subject. Single-shot, no tool use, ~$0.005 per call, ~1-2s latency. Only fires when PR_BODY.md is missing or empty -- when Claude writes a good first item, that's still preferred (free, semantic, in his voice). New helper `claude_complete` does the API call generically: curl POST /v1/messages, returns text. Reusable for future in-harness thinking tasks (classification, summarization, etc.). Model defaults to Haiku via new optional IGOR_MODEL_THINKING env var; documented in .env.example. Three-tier subject derivation now: 1. PR_BODY.md first "What this PR does" item -- preferred 2. API-generated from diff -- when PR_BODY misses 3. Hardcoded fallback -- when API also fails Both tier-1 and tier-3 call sites updated to pass worktree path so the diff is accessible to the API tier.