Skip to content
dhkPublic

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Latest commit

 

History

109 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

tricorder

"A room full of data people and you named it tricorder instead of data. Yes, on purpose."

Tricorder explorer showing review-pattern maturity, team gaps, reviewer coverage, and author profiles

Tricorder helps teams understand how well they build and systematically raise the standard.

Today it does that as a repository learning system: it turns local repository evidence, git history, and code-review discussions into an inspectable map of recurring standards, repeated correction, expertise concentration, team gaps, and opportunities to move useful knowledge upstream into education, workflow, tooling, or automation.

Try the live explorer · How to use Tricorder · Documentation index · Privacy and data flow

Studies

Three published runs. Each explorer link opens that repository's data; the header picker switches between them. Contributor names are aliases; review text, PR titles, and file paths are as found in the public repositories.

Repository Explorer Report Window PRs Lens
cal-itp/data-infra open 2026-06-02 2026-03-02 → 2026-05-30 190 analytics-engineering
block/buzz open 2026-09-08 2026-08-17 → 2026-09-03 272 product-engineering
block/berd open 2026-09-09 2026-08-12 → 2026-09-03 163 product-engineering-desktop

Product governance

Product intent follows this hierarchy:

Constitution → Product Vision → Product Strategy → Roadmap → Issues and PRs

DESIGN.md describes the system architecture. BRIEF.md is a compatibility summary for older links, not a competing product authority.

Install

Requires Python 3.9+.

python3 -m venv .venv
source .venv/bin/activate
python -m pip install git+https://github.com/dhk/tricorder.git

npm side effect: npm install dhk/tricorder runs this repository's postinstall script, which invokes pip install -e and changes the Python environment selected by pip3/pip. Use the isolated Python install above if you do not want npm to install Python packages. See HOWTO.md.

Quick start

# From inside a git repository
tricorder make-it-so

The orchestrator runs what available credentials permit, stores artifacts under .tricorder/, and skips locked levels. Run the levels individually when you want to inspect the boundary before granting more access:

Command Access added Result
tricorder discover local files repository profile and technology fingerprint
tricorder discover --history local git history contributors, hotspots, timeline
tricorder analyze OWNER/REPO GitHub read credential review observations, patterns, expertise map
tricorder learn OWNER/REPO configured LLM provider learnings and named reviewer/author profiles
tricorder interpret OWNER/REPO LLM provider + lens domain interpretation
tricorder improve OWNER/REPO LLM provider prioritized roadmap
tricorder build --open learn output (no new access) interactive explorer at localhost:7372

Without an API key you get discover, discover --history and analyze: the repository profile, ownership and hotspots, and a local cache of every review and inline comment (.tricorder/OWNER__REPO/.raw/) that you can read yourself or hand to the coding agent you already use. learn, interpret and improve need an Anthropic or Gemini key, and the explorer needs learn's output.

local files ──> git history ──> GitHub review data ──> LLM analysis ──> explorer
   no key          no key          GitHub credential      provider key     publishable

The practical consequence: value begins locally, while every later step crosses a clearer trust boundary. analyze can read private review history; learn sends selected review content and identities to the configured LLM provider; local caches retain source and generated data; and explorer output may be publishable. Read Privacy and data flow before using credentials or sharing output.

Lenses

Every LLM phase reads the repository through a discipline lens: a YAML file in tricorder/lenses/data/ (override per repo in .tricorder/lenses/) that carries the detection signals, file tags, categories, cited authorities, review axes, prompt context, and prohibitions for one kind of repository. discover picks the lens from the file tree and can answer unknown or mixed rather than guess; learn --dry-run shows the lens, the fit checks, and the exact prompts before any LLM call. Shipped: analytics-engineering, product-engineering, product-engineering-desktop, product-engineering-mobile, platform-engineering, security, agent-engineering. product-engineering-desktop is validated on block/berd (record); the others are experimental until a production-repository validation passes. Design: DESIGN.md; evidence: docs/research/repo-lens.

Oversight density

In agentic development, code review is where human oversight concentrates, so the review record is the audit trail of human judgment over machine-assisted change. The failure to detect is rubber-stamping, not a reviewer blind spot. Tricorder therefore computes, from the harvested record and without a model, how much human attention each reviewer applies (silent approvals: approve with no comment) and how much each lens axis receives (PRs that changed files under the axis with no human comment there). Measured on block/berd on 2026-09-03: every PR that touched the Tauri capabilities manifest or the CSP configuration merged with no human comment on those files. The numbers appear on the explorer's Team Gaps and Reviewer Fingerprints tabs and go to Phase 4 as context.

Primary research supporting the methodology

The lens design is not an opinion about how repositories should be read. It follows a commissioned research pass, answered from primary sources, that is checked into this repository so the reasoning can be audited and challenged:

  • How tricorder reads and recognizes a repository (lens methodology research, 2026-09-02). Seven questions, each answered with a verdict table and citations carrying title, publisher, URL, and retrieval date.
  • The brief that traces every question to the code it was meant to fix, and the handoff prompt that was sent, including the block/berd fingerprint used as the test case.
  • The lens file the research produced, now shipped as tricorder/lenses/data/product-engineering-desktop.yaml.
  • An independent second pass answered the same brief without seeing the first, and the synthesis compares them question by question. They agree on every structural decision; the second pass adds the formal grounding for abstention (Chow's reject option, selective classification) and a tighter rule for mixed repositories.

What the research established, in brief:

  • Detection copies the shape of GitHub Linguist: content-only, exclusion-first, maintainer-overridable. Ecosystem manifests (Cargo.toml, package.json, tauri.conf.json) are strong evidence; community-health and AI-assistant files (SECURITY.md, CLAUDE.md, AGENTS.md) appear in repositories of every kind and are excluded from inference. Without that exclusion the previous detector classified a desktop app as an agent-engineering repository.
  • Taxonomy follows Backstage's small-core, open-extension model: five top-level archetypes, with product-engineering as a parent for desktop, mobile, backend-service, library, and CLI sub-profiles. Archetype describes the artifact being engineered, not its subject matter.
  • Review standards per domain come from the maintainers of the tools the repository uses: for a Tauri desktop app, the Tauri security model, the Rust API Guidelines and Clippy, the Rules of React, Playwright's best practices, WCAG 2.2.
  • The maturity ladder (judgment → guidance → convention → rule → deterministic) maps onto rustc's allow / warn / deny / forbid lint levels and Google's enforce-in-build versus advise-in-review split (Sadowski et al., ICSE 2015 and CACM 2018).
  • Review-comment categories rest on the modern-code-review literature (Mäntylä and Lassenius 2009; Beller et al. 2014; Bacchelli and Bird 2013; Sadowski et al. 2018): roughly three quarters of review findings are maintainability rather than functional across languages and organisations, which justifies a domain-neutral core with per-lens extensions.
  • Thresholds are a design choice. No published classifier exposes an abstention threshold for this problem, so min_score and min_margin are engineering values to be calibrated on a labelled corpus, and the tool reports unknown or mixed rather than guess.

The research also records what it could not settle, in its open gaps: no authoritative unsafe-Rust checklist, partial Biome coverage of the React hook rules, no primary standard for desktop telemetry review or for infrastructure-as-code change semantics. Those limits are carried into the lenses as maturity ceilings, not papered over.

Credentials

analyze checks GITHUB_TOKEN, then gh auth token, then supported macOS Keychain entries. A credential must be able to read the target repository; private repositories require corresponding private-repository access.

learn, interpret, and improve use Anthropic or Gemini. Set exactly one provider key, or choose a provider explicitly:

export GITHUB_TOKEN=...           # never commit it
export ANTHROPIC_API_KEY=...      # or GEMINI_API_KEY
tricorder learn OWNER/REPO --provider anthropic --visibility private

Configuration and credential details are in HOWTO.md.

Compatibility and maturity

The v2 interface above is authoritative. The v1 commands ready, probe, harvest, synthesize, render, and demo remain available through legacy script dispatch for compatibility, but new usage and documentation should use v2.

Tricorder is under active development. The six-level v2 command surface is shipped; discipline lenses and generated judgments remain experimental and require human review. Tricorder is not a performance-review system, a developer ranking system, a live code reviewer, or a guarantee that anonymized output is safe to publish.

Self-directed impact evidence

skills/impact-advocate is an agent skill that mines your own GitHub record over a window you choose and writes an evidence-led Markdown impact document, rated against your role and level, for a self-review or promotion case. It runs under the narrow self-directed exception in CONSTITUTION.md §6: you run it on yourself, you own the output, and no colleague is ranked.

Privacy-first: runs entirely inside your own Claude session, with your own access. No server, no telemetry, no extra AI provider. On an employer repo, check that your company's policy allows your Claude plan to read its code.

Install it in Claude Code with one command, then type /impact and the skill walks you through the rest. No clone, no Python:

/plugin install impact-advocate --marketplace dhk/tricorder

Guide: web version · Markdown.

See CONTRIBUTING.md for development and test instructions and SECURITY.md for private vulnerability reporting.

About

No description, website, or topics provided.

Resources

Contributing

Security policy

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages