惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
阮一峰的网络日志
阮一峰的网络日志
Jina AI
Jina AI
博客园 - Franky
U
Unit 42
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
宝玉的分享
宝玉的分享
B
Blog RSS Feed
雷峰网
雷峰网
D
DataBreaches.Net
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
I
InfoQ
美团技术团队
云风的 BLOG
云风的 BLOG
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
Martin Fowler
Martin Fowler
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
大猫的无限游戏
大猫的无限游戏
G
Google Developers Blog
T
Tailwind CSS Blog
P
Proofpoint News Feed
The GitHub Blog
The GitHub Blog
月光博客
月光博客
Engineering at Meta
Engineering at Meta

Hacker News: Show HN

PurrrrrFocus: Pomodoro Timer App - App Store Workflow Engine — Multi-Step Orchestration for Bun RapidPhoto: Pro Photo Editor App - App Store GitHub - DheerG/swarms: Achieve extraordinary results with claude code across a variety of tasks SPICE simulation → oscilloscope → verification with Claude Code — Lucas Gerads Show HN: VCoding – A 5 MB native Windows IDE with no dynamic dependencies Show HN: LLMs don't hallucinate because they're bad at math, it's the format GitHub - Agent-FM/agentfm-core: AgentFM is a peer-to-peer network that turns everyday computers into a decentralized AI supercomputer. AgentFM lets you run massive AI workloads directly across a global mesh of idle CPUs and GPUs. Show HN: Tracking Top US Science Olympiad Alumni over Last 25 Years GitHub - Potarix/agent-hub: One place to talk to all your agents Show HN: Runtime security for AI agents(injection,tool abuse, data exfiltration) GitHub - dubeyKartikay/lazyspotify: Terminal Spotify client for macOS and Linux GitHub - the-banana-tool/king-louie: Easy to use GUI Personal AI Assistant. Win/Linux/Mac. Show HN I made my vacation rental bookable by AI agents–no Airbnb, 0% commission GitHub - basteez/jsf-autoreload: maven plugin to enable hot reload on jsf projects uvm32/hosts/host-gdbstub at main · ringtailsoftware/uvm32 GitHub - labsai/EDDI: Config-driven engine that turns JSON into production-grade AI agents. Multi-agent orchestration, 12+ LLM providers, MCP/A2A protocols, RAG, persistent memory, and enterprise compliance (EU AI Act, GDPR, HIPAA). Built on Quarkus. GitHub - glitchnsec/fortyone-oss: AI Executive Assistant Platform Quickstart | Alien GitHub - muxshed/shed: One stream in, or many. Every destination, simultaneously. No cloud middleman, no per-channel fees, no limits. GitHub - ocrbase-hq/ocrbase: 📄 PDF/IMG ->.MD/JSON Document OCR API for PaddleOCR and GLMOCR. Self-hostable. GitHub - impactjo/home-memory: MCP server that lets your AI assistant remember everything about your home. GitHub - Sets88/dbcls: DbCls is a powerful terminal database client that supports various databases GitHub - neptun2000/heor-agent-mcp GitHub - SeanFDZ/macmind: Single-layer transformer in HyperTalk for the classic Macintosh RollQuation: Math Puzzles - Apps on Google Play GitHub - dropbox/witchcraft Show HN: Agent-cache – Multi-tier LLM/tool/session caching for Valkey and Redis GitHub - opentalon/opentalon: OpenTalon is an open-source platform built from the ground up in Go as a robust alternative to OpenClaw LinkedIn™ 职位抓取工具 - Chrome 应用商店
GitHub - mattykry/revos
Mattykry · 2026-05-15 · via Hacker News: Show HN

npm version CI License: MIT

Architecture governance for AI-assisted software development.

Revos scans a codebase, builds a dependency graph, detects architecture violations, explains what went wrong, and suggests possible fixes.

It is designed for teams using AI coding tools, where code can compile and tests can pass while the architecture slowly drifts.

Install

Run Revos without installing it globally:

npx @revoscli/cli scan https://github.com/fastapi/fastapi --report all

Or install it globally:

npm install -g @revoscli/cli
revos --help

The npm package is:

The installed command is:

Quick start

Scan a local project:

Scan a public GitHub repository:

revos scan https://github.com/user/repo --report all

Scan a subdirectory inside a repository:

revos scan https://github.com/user/repo --subdir backend --report all

Initialize Revos in a project:

revos init . --auto --force

Or choose a preset manually:

revos init . --preset default --force
revos init . --preset clean-architecture --force
revos init . --preset nextjs --force
revos init . --preset nestjs --force
revos init . --preset laravel --force
revos init . --preset laravel-clean-architecture --force
revos init . --preset fastapi --force

Why Revos exists

Modern teams can generate code very quickly.

The problem is that working code is not always well-structured code.

A project can compile, tests can pass, and the product can still slowly develop architecture problems such as:

  • UI components importing database clients.
  • Domain code depending on frameworks.
  • Controllers accessing repositories or databases directly.
  • Client code importing server-only modules.
  • Circular dependencies.
  • Modules importing internal details from other modules.
  • Application or domain layers depending on infrastructure.

Revos helps catch these problems early.

It is not a replacement for mature static analyzers. It is an architecture guardrail for the AI era: fast scans, framework presets, readable reports, CI-friendly output, and practical suggestions.

Example output

Scanning project: https://github.com/fastapi/fastapi
Detected plugins: python
Detected frameworks: fastapi
Found 1119 source files

Dependency Graph
Nodes: 1021
Edges: 3388

Architecture Issues

[HIGH] Circular dependency detected
Type: circular-dependency

Files:
- fastapi/utils.py
- fastapi/routing.py
- fastapi/utils.py

Problem:
Two or more files depend on each other. This makes the architecture harder to maintain and can create runtime bugs.

Suggested fix:
Extract the shared logic into a separate file or module, then make both files depend on that shared abstraction instead of depending on each other.

Summary
Files scanned: 1119
Detected plugins: python
Dependencies: 3388
Issues found: 6
High: 6
Medium: 0
Low: 0

What Revos checks

Revos currently supports:

  • Project scanning from local paths.
  • Public GitHub repository scanning.
  • Subdirectory scanning with --subdir.
  • Dependency graph generation.
  • Circular dependency detection.
  • Forbidden import rules.
  • Framework-aware presets.
  • Rule-level ignores.
  • Targeted issue ignores.
  • Issue deduplication.
  • Markdown reports.
  • JSON reports.
  • SARIF reports for GitHub Code Scanning.
  • Compact terminal output with --max-issues.
  • CI failure with --fail-on.

Supported stacks

Currently supported:

  • TypeScript
  • TSX
  • React
  • Next.js
  • NestJS
  • Express detection
  • Laravel / PHP
  • Laravel Clean Architecture
  • Python
  • FastAPI
  • Django detection
  • Flask detection

Reports

Generate a Markdown report:

revos scan . --report markdown

Generate a JSON report:

revos scan . --report json

Generate a SARIF report:

revos scan . --report sarif

Generate all report formats:

revos scan . --report all

Local project reports are written to:

.revos/report.md
.revos/report.json
.revos/report.sarif

For GitHub repository scans, reports are copied to the current working directory by default:

revos-report.md
revos-report.json
revos-report.sarif

Choose a custom output directory:

revos scan https://github.com/user/repo --report all --output ./reports

Limit terminal output while keeping full reports:

revos scan . --report all --max-issues 10

Show all issues in the terminal:

revos scan . --max-issues 0

CI usage

Fail CI when high severity issues are found:

revos scan . --report all --fail-on high

Keep terminal output compact in CI while still generating complete reports:

revos scan . --report all --fail-on high --max-issues 20

Example GitHub Actions workflow:

name: Revos

on:
  pull_request:
  push:
    branches:
      - main

jobs:
  revos:
    name: Architecture checks
    runs-on: ubuntu-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Setup Node.js
        uses: actions/setup-node@v4
        with:
          node-version: 20

      - name: Install Revos
        run: npm install -g @revoscli/cli

      - name: Initialize Revos config if missing
        run: |
          if [ ! -f .revos/rules.json ]; then
            revos init . --auto
          fi

      - name: Run Revos
        run: revos scan . --report all --fail-on high --max-issues 20

      - name: Upload Revos reports
        if: always()
        uses: actions/upload-artifact@v4
        with:
          name: revos-reports
          path: |
            .revos/report.md
            .revos/report.json
            .revos/report.sarif

      - name: Upload Revos SARIF
        if: always()
        uses: github/codeql-action/upload-sarif@v3
        with:
          sarif_file: .revos/report.sarif

A sample workflow is available here:

examples/github-actions/revos.yml

Configuration

Revos uses a project-level configuration file:

Example:

{
  "forbiddenImports": [
    {
      "id": "domain-no-fastapi",
      "from": "**/domain/**",
      "to": "[external] fastapi",
      "severity": "high",
      "title": "Domain depends on FastAPI",
      "message": "Domain code should not depend on FastAPI.",
      "suggestedFix": "Move FastAPI-specific code into API routes or adapters."
    }
  ]
}

Supported severities:

Read more:

  • docs/configuration.md
  • docs/presets.md
  • docs/plugins.md

Presets

Available presets:

default
clean-architecture
nextjs
nestjs
laravel
laravel-clean-architecture
fastapi

Use a preset:

revos init . --preset nextjs --force

Auto-detect a suitable preset:

revos init . --auto --force

Language support

TypeScript / Next.js / NestJS

The TypeScript plugin supports:

  • .ts
  • .tsx
  • static imports
  • side-effect imports
  • export from
  • dynamic imports
  • relative imports
  • tsconfig.json aliases
  • framework detection from nested package.json files

Detected frameworks include:

  • Next.js
  • React
  • NestJS
  • Express

Laravel / PHP

The Laravel plugin supports:

  • .php
  • use imports
  • aliased imports
  • grouped imports
  • fully-qualified class references
  • static class references
  • short class references resolved through use
  • Composer PSR-4 mappings
  • Laravel fallback mappings
  • Laravel detection
  • Laravel Clean Architecture detection

Read more:

Python / FastAPI

The Python plugin supports:

  • .py
  • standard imports
  • from imports
  • alias imports
  • relative imports
  • root layout
  • src/ layout
  • package __init__.py
  • FastAPI detection
  • Django detection
  • Flask detection
  • FastAPI preset

Read more:

Development

Install dependencies:

Run tests:

Build the CLI:

pnpm --filter @revoscli/cli build

Run the CLI locally:

pnpm --filter @revoscli/cli dev scan .

Run a local scan with reports:

pnpm --filter @revoscli/cli dev scan . --report all

Monorepo structure

revos/
  apps/
    cli/

  packages/
    core/
    plugin-typescript/
    plugin-laravel/
    plugin-python/

  docs/
  examples/
  .github/

Status

Revos is currently an early alpha / serious technical MVP.

It is useful for:

  • detecting common architecture drift;
  • keeping framework boundaries clean;
  • making CI fail on serious architecture issues;
  • helping teams review generated code;
  • explaining architecture problems clearly.

Revos should not yet be described as:

  • production-ready enterprise software;
  • a complete replacement for mature static analyzers;
  • a tool that covers every language or framework edge case.

Current positioning:

Early alpha architecture governance CLI for AI-era codebases.

Roadmap

Near-term ideas:

  • Baseline mode for failing only on new architecture issues.
  • Better monorepo visualization.
  • Improved false-positive filtering.
  • More framework presets.
  • HTML reports.
  • More real-world repository benchmarks.

License

MIT.