Alexander Payne a9c652e576
Some checks failed
Test / pytest (pull_request) Failing after 9s
feat(linter): add linter runner for multi-language repo scanning (#155)
Implements #155 — a language-aware linter runner that detects repository
languages and runs appropriate linters (pylint, eslint, shellcheck, yamllint,
etc.), collects violations, and outputs structured reports.

Acceptance criteria:
  [x] Detects language per repo — based on file extensions
  [x] Runs: pylint (Python), eslint (JS/TS), shellcheck (Shell), yamllint (YAML)
  [x] Collects violations: file, line, column, message, severity, linter, code
  [x] Output: lint report per repo in console or JSON (--format json)

Files added:
- scripts/linter_runner.py — CLI tool + library functions
- tests/test_linter_runner.py — unit tests (language detection, parsing)

Usage:
  python3 scripts/linter_runner.py --repo .
  python3 scripts/linter_runner.py --repo . --format json
  python3 scripts/linter_runner.py --repo . --fail-on error

Output example:
  === Lint Report: my-repo ===
    python: 3 issues (1 errors, 2 warnings)
    shell:  1 issues (1 errors)
    Total:  4 issues
2026-04-26 00:58:02 -04:00
2026-04-15 11:29:23 -04:00

Compounding Intelligence

Turn 1B+ daily tokens into durable, compounding fleet intelligence.

The Problem

20,991 sessions on disk. Each one starts at zero. Every agent rediscover the same HTTP 405 is a branch protection issue. The intelligence from a million tokens of work evaporates when the session ends.

The Solution

Three pipelines that form a compounding loop:

SESSION ENDS → HARVESTER → KNOWLEDGE STORE → BOOTSTRAPPER → NEW SESSION STARTS SMARTER
                              ↓
                         MEASURER → Prove it's working

Architecture

Pipeline 1: Harvester

Reads finished session transcripts. Extracts durable knowledge: facts, pitfalls, patterns, tool quirks. Stores in knowledge/.

Pipeline 2: Bootstrap

Before a session starts, queries knowledge store for relevant facts. Assembles compact 2k-token context. Injects into session so it starts with full situational awareness.

Pipeline 3: Measure

Tracks whether compounding is happening. Knowledge velocity, error reduction, hit rate, task completion. Daily report proves the loop works.

Directory Structure

├── knowledge/
│   ├── index.json          # Machine-readable fact index
│   ├── global/             # Cross-repo knowledge
│   ├── repos/{repo}.md     # Per-repo knowledge
│   └── agents/{agent}.md   # Agent-type notes
├── scripts/
│   ├── harvester.py        # Post-session knowledge extractor
│   ├── bootstrapper.py     # Pre-session context loader
│   ├── measurer.py         # Compounding metrics
│   └── session_reader.py   # JSONL parser
├── metrics/
│   └── dashboard.md        # Human-readable status
└── templates/
    ├── bootstrap-context.md
    └── harvest-prompt.md

The 100x Path

Month 1:  15,000 facts, sessions 20% faster
Month 2:  45,000 facts, sessions 40% faster, first-try success up 30%
Month 3:  90,000 facts, fleet measurably smarter per token

Each new session is better than the last. The intelligence compounds.

Issues

See all issues for the full roadmap.

Epics:

  • EPIC 1: Session Harvester (#2)
  • EPIC 2: Knowledge Store & Bootstrap (#3)
  • EPIC 3: Compounding Measurement (#4)
  • EPIC 4: Retroactive Harvest (#5)
Description
System for turning 1B+ daily tokens into durable, compounding fleet intelligence
Readme 4.8 MiB
Languages
Python 100%