Skip to content

feat(ci-loop): CIA signal capture — finding store + cross-session collector #1200

@akaszubski

Description

@akaszubski

Summary

Modify continuous-improvement-analyst agent to emit findings to a structured finding store (instead of direct issue filing), and create a cross-session collector that groups findings by root cause and severity. This decouples signal capture from immediate issue creation.

Implementation Approach

  1. C1 — Modify plugins/autonomous-dev/agents/continuous-improvement-analyst.md: Replace 7 direct filing instructions (lines 86, 276, 299, 320, 323, 335, 403) with append_finding() calls. Emit fields: severity ({info, warning, error}), root_cause_tag (existing CI check taxonomy), title, evidence, file_refs, session_id, ts. Keep human-readable ISSUE-CANDIDATE table in report. NO immediate-file tier.
  2. C2a — Create plugins/autonomous-dev/lib/cia_finding_store.py (~80 lines): append_finding(record) — atomic append to .claude/logs/findings/YYYY-MM.jsonl, mode 0600. Fail-open: finding still appears in CIA report if write fails.
  3. C2b — Extend plugins/autonomous-dev/lib/runtime_data_aggregator.py (~40 lines): collect_cia_findings(findings_dir: Path, window_days=90) -> List[AggregatedSignal]. Group by (root_cause_tag, title-token cluster via issue_triage_analyzer.extract_title_tokens + cluster_within_tag). Track frequency + distinct session_ids. Severity mapping {info: 0.33, warning: 0.66, error: 1.0} per AggregatedSignal.severity 0.0-1.0 contract (line 83). findings_dir REQUIRED absolute Path (no CWD default — worktree safety). Decay = window mechanism only.
  4. Tests: tests/unit/lib/test_cia_finding_store.py (10: append/0600/atomic/fail-open/collect/grouping/window/distinct-sessions/worktree-CWD-resolution/severity-contract).

Acceptance Criteria

  • CIA prompt contains zero direct issue-filing instructions; test-locked
  • append_finding writes atomic 0600 monthly JSONL; fail-open verified
  • collect_cia_findings conforms to severity 0.0-1.0 contract
  • Collector resolves findings_dir correctly from worktree CWD (regression test)
  • Decay is window-only (90-day default); no destructive deletes

Part of macro-first plan (.claude/plans/macro-first-continuous-improvement.md). Blocks the promotion-path issue.
Plugin Version: 3.50.0 (c41558b)

Metadata

Metadata

Assignees

No one assigned

    Labels

    auto-improvementContinuous improvement analyst findingsenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions