[claude] Auto-create Gitea issues from research findings (#977) #1060

Merged
Rockachopa merged 2 commits from claude/issue-977 into main 2026-03-23 15:09:20 +00:00
Collaborator

Fixes #977

Summary

  • Implements extract_action_items(report) — LLM extracts 0-5 concrete action items from structured research output
  • Implements create_gitea_issue(item) — files issues via Gitea REST API with labels, source links, and evidence
  • Implements triage_research_report() — end-to-end orchestrator with dry_run support
  • Auto-resolves/creates labels (actionable, kimi-ready, etc.)
  • Links child issues back to source research issue
  • 28 unit tests covering all paths + graceful degradation

Design

  • Uses httpx.AsyncClient for Gitea API (consistent with existing patterns in mcp_tools.py)
  • LLM extraction via injectable llm_caller callable, falls back to cascade router
  • ActionItem dataclass with to_issue_body() for clean formatting
  • Follows project conventions: graceful degradation, from config import settings, no cloud deps

Test Plan

  • 28 unit tests pass (tox -e unit)
  • ActionItem formatting with/without source URLs and issue links
  • LLM response parsing (plain JSON, fenced, empty, invalid)
  • Validation (title length, body length, label normalization, priority defaults)
  • Gitea API creation with mocked httpx
  • Connection error handling
  • Dry run mode
  • End-to-end triage flow
Fixes #977 ## Summary - Implements `extract_action_items(report)` — LLM extracts 0-5 concrete action items from structured research output - Implements `create_gitea_issue(item)` — files issues via Gitea REST API with labels, source links, and evidence - Implements `triage_research_report()` — end-to-end orchestrator with dry_run support - Auto-resolves/creates labels (`actionable`, `kimi-ready`, etc.) - Links child issues back to source research issue - 28 unit tests covering all paths + graceful degradation ## Design - Uses `httpx.AsyncClient` for Gitea API (consistent with existing patterns in `mcp_tools.py`) - LLM extraction via injectable `llm_caller` callable, falls back to cascade router - `ActionItem` dataclass with `to_issue_body()` for clean formatting - Follows project conventions: graceful degradation, `from config import settings`, no cloud deps ## Test Plan - [x] 28 unit tests pass (`tox -e unit`) - [x] ActionItem formatting with/without source URLs and issue links - [x] LLM response parsing (plain JSON, fenced, empty, invalid) - [x] Validation (title length, body length, label normalization, priority defaults) - [x] Gitea API creation with mocked httpx - [x] Connection error handling - [x] Dry run mode - [x] End-to-end triage flow
claude added 1 commit 2026-03-23 02:15:29 +00:00
feat: auto-create Gitea issues from research findings
Some checks failed
Tests / lint (pull_request) Failing after 10s
Tests / test (pull_request) Has been skipped
59ec700007
Implement `extract_action_items()` and `create_gitea_issue()` to close
the research → knowledge → actionable backlog loop.

- LLM extracts 0-5 concrete action items from research reports
- Each item filed as a Gitea issue with labels, source links, evidence
- Labels auto-resolved/created (actionable, kimi-ready, etc.)
- Child issues linked back to source research issue
- `triage_research_report()` orchestrates end-to-end with dry_run support
- 28 unit tests covering extraction, validation, API calls, and graceful degradation

Fixes #977

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Rockachopa added 1 commit 2026-03-23 14:42:41 +00:00
Merge branch 'main' into claude/issue-977
Some checks failed
Tests / lint (pull_request) Failing after 15s
Tests / test (pull_request) Has been skipped
27a3d9e8ab
Rockachopa merged commit ab36149fa5 into main 2026-03-23 15:09:20 +00:00
Rockachopa deleted branch claude/issue-977 2026-03-23 15:09:21 +00:00
Owner

[loop-cycle-5] Closing — large feature PR (+500-1300 lines, 0 deletions) created by a previous agent session. Lines of code are a liability. These features need to be broken into smaller, well-tested increments if they are still wanted. Reopen the linked issue if needed.

[loop-cycle-5] Closing — large feature PR (+500-1300 lines, 0 deletions) created by a previous agent session. Lines of code are a liability. These features need to be broken into smaller, well-tested increments if they are still wanted. Reopen the linked issue if needed.
Owner

[loop-cycle-5] Closing — large feature PR from a previous agent session. Lines of code are a liability. Features need smaller, tested increments. Reopen linked issue if still wanted.

[loop-cycle-5] Closing — large feature PR from a previous agent session. Lines of code are a liability. Features need smaller, tested increments. Reopen linked issue if still wanted.
Sign in to join this conversation.
No Reviewers
No Label
3 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: Rockachopa/Timmy-time-dashboard#1060