Decisions

  • Pending: Monitoring frequency — hourly, daily, or event-driven?
  • Pending: Which external sources to scan first? (GitHub releases, RSS, Reddit)
  • Pending: Pitch delivery channel — terminal only, vault inbox, or messaging?
  • Pending: Auto-create FRs on approval, or just add to inbox for manual processing?
  • Pending: Self-improvement scope — can the system modify its own code, or only propose changes?

User Tasks


Summary

Build a proactive monitoring system that detects pain points, patterns, inconsistencies, and external events — then automatically proposes actionable improvements through a structured pitch flow.

Problem / Motivation

Currently Opus is entirely reactive — it only acts when the user initiates work. This means:

  • Recurring errors go unnoticed until they cause visible failures
  • Repetitive manual patterns are never identified for automation
  • External events (new Claude releases, dependency updates) are missed
  • Vault inconsistencies (stale FRs, missing references, broken links) accumulate
  • The system only improves when the user thinks to improve it

Nexie solves this with a proactive monitoring layer that continuously scans for opportunities and pain points, then proposes solutions through a lightweight pitch flow. This transforms the system from a tool the user operates into a partner that actively identifies work worth doing.

Proposed Solution

Build a Python monitoring module with multiple detection strategies, all feeding into a unified pitch pipeline:

Detection Strategies

1. Error Log Analysis

  • Monitor agent failure logs, git hook errors, skill execution errors
  • When the same error appears 3+ times, auto-create a pitch
  • Example: “Agent X failed to parse FR format 4 times this week pitch: standardize FR parsing”

2. Vault/Spec Consistency Checks

  • Periodically scan the vault for inconsistencies:
    • FRs referencing non-existent dependencies
    • Features in-progress with no recent commits
    • Dashboard counts out of sync with actual files
    • Broken internal links between vault files
    • Templates diverging from actual FR format usage
  • Example: “FR-043 has been in-progress for 2 weeks with no commits. FR-040 references a dependency that doesn’t exist.”

3. Pattern Detection from Usage

  • Track which tasks the user performs repeatedly
  • If the same manual sequence occurs 3+ times, recognize the pattern and propose automation
  • Example: “You’ve manually updated the feature dashboard 5 times this week. Propose: auto-sync dashboard on FR status change.”

4. Internet Monitoring

  • Monitor specific external sources for relevant information:
    • GitHub releases for Claude Code, dependencies, tools
    • RSS feeds for relevant tech news
    • Reddit threads for community insights
  • When actionable information is found, create a pitch
  • Example: “Claude Code v1.5 released with new agent features pitch: review changelog and create FRs for relevant upgrades”

5. Self-Improvement Loop

  • The system proposes features that make the system better
  • If agent execution is slow, propose optimization
  • If specs frequently need revision, propose better templates
  • Track improvement velocity and suggest meta-improvements
  • The recursive aspect: the monitoring system monitors itself

Pitch Pipeline

The trigger-to-action flow:

  1. Monitoring job runs on schedule (configurable frequency)
  2. Analyzes logs, usage patterns, vault state, external sources
  3. Detects something worth acting on
  4. Creates a pitch — a concise Problem Proposal message
  5. Delivers pitch to user via preferred channel
  6. User approves/rejects with a single reply
  7. If approved, enters the standard feature workflow (creates FR, enters lifecycle)

Pitch Template:

[PITCH] Source: {error-log | vault-scan | pattern | internet | self-improvement}
Problem: {one sentence}
Proposal: {one sentence}
Evidence: {data supporting the pitch}
Action: approve / reject / defer

Open Questions

1. Monitoring Frequency

Question: How often should the monitoring system run?

OptionDescription
A) HourlyCatches issues fast, but high resource usage. Useful for error monitoring
B) DailyBalanced — runs once per day (e.g., during briefing generation). Good for vault scans
C) Event-drivenTriggered by specific events (git commit, session start, error threshold). Most efficient
D) MixedError monitoring event-driven, vault scans daily, internet checks on schedule

Recommendation: Option D — different strategies warrant different frequencies. Error monitoring should be event-driven (fast), vault scans daily (thorough), internet checks configurable.

Decision:

2. External Sources

Question: Which external sources should be monitored first?

OptionDescription
A) GitHub releases onlyMost actionable — Claude Code updates directly affect Opus
B) GitHub + RSS feedsBroader coverage, more noise to filter
C) GitHub + RSS + RedditFull coverage, requires good relevance filtering

Recommendation: Option A — start with GitHub releases for Claude Code and key dependencies. Expand based on value delivered.

Decision:

3. Pitch Delivery Channel

Question: How should pitches be delivered to the user?

OptionDescription
A) Vault inboxWrite to vault/90_inbox/. User sees in Obsidian. No external deps
B) Terminal notificationShow during next Claude Code session. Immediate but ephemeral
C) Messaging (iMessage/WhatsApp)Push notification. Requires FR-023. Most visible

Recommendation: Option A — vault inbox is persistent and review-friendly. Terminal notification as supplement. Messaging later.

Decision:

4. Auto-Create vs Suggest

Question: When user approves a pitch, should the system auto-create an FR or just add to inbox?

OptionDescription
A) Auto-create FRFull automation — approved pitch becomes FR immediately
B) Add to inbox for manual processingUser reviews and decides placement. Safer
C) Auto-create draft FRCreates FR in new/ but marks as draft for user review

Recommendation: Option C — auto-create a draft FR so the user doesn’t have to start from scratch, but still reviews before it enters the workflow.

Decision:


Phase Overview

PhaseDescriptionStatus
Phase 1Error log monitoring
Phase 2Vault/spec consistency checks
Phase 3Pattern detection from usage
Phase 4Internet monitoring + self-improvement loop

Phase 1: Error Log Monitoring —

Goal: Detect recurring errors across agent runs, hook failures, and skill executions.

File / FeatureDetailsOwnerStatus
src/opus/monitoring/collector.pyLog collector: aggregate errors from git hooks, agent outputs, skill logsopus
src/opus/monitoring/analyzer.pyError pattern analysis: count occurrences, group by type, detect repeatsopus
src/opus/monitoring/pitch.pyPitch generator: create structured pitch from detected patternopus
Error threshold configConfigurable: how many occurrences before generating a pitch (default: 3)opus
Log storageWhere to persist collected logs (append-only log file or SQLite)opus
Unit testsError detection, threshold triggering, pitch generationmv

Phase 2: Vault/Spec Consistency Checks —

Goal: Periodically scan the vault for inconsistencies, stale items, and broken references.

File / FeatureDetailsOwnerStatus
src/opus/monitoring/vault_scanner.pyVault scanner: walk vault files, parse frontmatter, check referencesopus
Dependency validationCheck that FR prerequisites reference existing FRsopus
Stale detectionFind FRs in-progress with no git activity for X daysopus
Dashboard sync checkVerify dashboard counts match actual file counts per statusmv
Broken link detectionFind internal vault links ([[...]]) that point to non-existent filesopus
Template drift detectionCompare actual FR format usage against _templates/feature-request.mdopus
Pitch generationCreate pitches for each category of inconsistency foundopus

Phase 3: Pattern Detection from Usage —

Goal: Identify repetitive manual patterns that could be automated.

File / FeatureDetailsOwnerStatus
src/opus/monitoring/usage_tracker.pyTrack user actions: which skills invoked, which files edited, which sequences repeatedmv
Sequence detectionIdentify repeated action sequences (3+ occurrences of same pattern)opus
Automation proposalsGenerate pitches proposing automation for detected patternsopus
Privacy considerationsOnly track action types, not content. User opt-in for detailed trackingmv
Integration with session logsParse Claude Code session history for action patternsopus

Phase 4: Internet Monitoring + Self-Improvement Loop —

Goal: Monitor external sources for relevant updates and enable recursive self-improvement.

File / FeatureDetailsOwnerStatus
src/opus/monitoring/internet.pyExternal source scanner: GitHub releases, RSS feedsopus
GitHub release monitoringCheck Claude Code and dependency releases, compare with current versionsopus
Relevance filteringScore external information for relevance to Opus before creating pitchesopus
Self-improvement analysisMonitor system performance metrics: agent success rate, task duration, pitch acceptance rateopus
Meta-improvement proposalsPropose improvements to the monitoring system itself based on effectiveness dataopus
Recursive improvement trackingLog which self-improvement proposals were accepted and their measured impactopus

Prerequisites / Gap Analysis

Requirements

RequirementDescription
REQ-1Python project scaffold (FR-009) — monitoring module is Python code
REQ-2Workflow state machine (FR-031) — for auto-creating FRs from approved pitches

Current State

ComponentStatusDetails
Python scaffoldFR-009 not started
State machineFR-031 not started
Error loggingNo centralized error collection exists
Self-improvement logdonevault/00_system/logs/self-improvement-log.md exists (manual)

Gap (What’s missing?)

GapEffortBlocker?
Python scaffold (FR-009)MedYes — monitoring is Python code
Centralized log collectionMedNo — can be built in Phase 1
External API accessLowNo — GitHub API is public, RSS is standard
State machine for FR creation (FR-031)HighPartial — Phase 1-2 can work without it

Test

Manual tests

TestExpectedActualLast
Dashboard sync check finds mismatchMismatch reported with actual vs expected countspending-

AI-verified tests

ScenarioExpected behaviorVerification method

E2E tests

ScenarioAssertion

Integration tests

ComponentCoverage

Unit tests

ComponentTestsCoverage

History

DateEventDetails
2026-03-04CreatedInspired by Nexie’s proactive monitoring and auto-trigger capabilities

References

  • FR-009 (Python Project Scaffold) — code infrastructure prerequisite
  • FR-049 (Error Logging & Notification) — error logging feeds into monitoring
  • FR-048 (System Self-Review) — manual version of what this automates
  • FR-066 (Self-Improving System) — broader self-improvement vision; this FR is a concrete implementation path
  • FR-031 (Workflow State Machine) — state machine enables auto-FR-creation from approved pitches
  • FR-037 (Daily Briefings) — monitoring findings can feed into daily briefings
  • Nexie (Sven Hennig) — original inspiration for proactive monitoring architecture