Skip to content
kage1020Public

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

220 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Aburi

Aburi reads a pull request and tells you what the change did: which endpoints are new, which methods now write to the database, which validation guard disappeared.

It parses both revisions with tree-sitter, matches functions and methods across them, and writes the answer as Markdown. Your CI can fail the build on any of it.

Documentation: aburi.kage1020.com

What the report looks like

# Aburi diff: main..HEAD

**Summary**: +2 added · -1 removed · ~3 changed · 1 moved

## ⚠ API changes

### `submitOrder` *(function)*
**File**: `src/app/orders/actions.ts:18`

- signature.outputs: `Promise<Order>` → `Promise<OrderWithReceipt>`
- signature.throws added: `PaymentDeclined`

## 🔧 Logic changes

### `POST` *(function)*
**File**: `src/app/api/orders/route.ts:9`

- rules removed:
  - guard: `session.user.role !== 'admin'` (L14)
- effects added:
  - db.write: `prisma.auditLog.create` (L31)

That deleted guard is a single red line somewhere in a 2,000-line git diff. Aburi gives it a heading.

Why not git diff

Rename a file without touching its logic and Aburi reports moved, where git diff reports a delete plus an add. Reformat a body and Aburi files it under syntax-only changes, folded out of your way. Interfaces, DTOs, re-exports, and empty bodies drop out before the comparison, so they stay out of the summary.

Aburi runs static analysis. No model, no sampling, so the same commit produces the same report, and you can gate CI on any category it counts: --fail-on 'removed,changed:>20'.

Quick start

pnpm add -D @aburi/cli @aburi/lang-typescript @aburi/framework-next @aburi/framework-react

pnpm exec aburi init                # detect the project, write aburi.json
pnpm exec aburi scan                # analyse the workspace → out/
pnpm exec aburi diff main..HEAD --fail-on 'removed,changed:>20'

With another package manager, install with npm install -D …, yarn add -D …, or bun add -D …, and run the CLI as npx aburi …, yarn aburi …, or bunx aburi ….

Exit code 3 means a gate tripped. The full walkthrough is in Getting started.

In GitHub Actions

- uses: actions/checkout@v7
  with: { fetch-depth: 0 }
- uses: pnpm/action-setup@v6
  with: { version: 10 }
- uses: actions/setup-node@v7
  with: { node-version: 24, cache: pnpm }
- run: pnpm install --frozen-lockfile
- uses: kage1020/Aburi/packages/github-action@v0
  with:
    cli: workspace
    fail-on: "removed,dropped-toggled:to-dropped:>10"

The action posts the report as a pull request comment, and rewrites that same comment on every push.

@v0 moves to the newest 0.x release, breaking input changes included. Pin the full @v<x.y.z> — created by the release, never moved — to hold one; Pinning has the rest of the options, and why the tag changeset publish writes is not one of them.

cli: workspace runs the @aburi/cli those install steps put in your node_modules, which is also what lets it load the plugins your aburi.json names. Set cli: dlx instead and the action fetches the CLI itself, with no install step — and no plugin named by package, since it resolves those from the pnpm store rather than from your project. Aburi runs itself the first way: .github/workflows/aburi.yml.

Documentation

What is Aburi? The idea, in five minutes.
Getting started Install to first diff.
Reading the report What each section means.
Supported stacks Which plugins cover your framework.
Configuration Every field of aburi.json.
CI integration Gates and pull request comments.
CLI reference Every flag and exit code.
Architecture How the pipeline fits together.
Plugin development Add a language, framework, or library.
Roadmap What works today, what is next.

Design documents live in docs/design/, the JSON Schemas in schema/. The site serves each schema at the $id it carries, so https://aburi.kage1020.com/schema/aburi.config.v1.json is the same file your editor resolves from the $schema line of an aburi.json.

Contributing

You need Node.js 24+ and pnpm (corepack enable pnpm).

pnpm install
pnpm check       # lint + format
pnpm typecheck
pnpm test
pnpm build

Read CONTRIBUTING.md before you open a pull request. We would love new language, framework, and effects plugins.

License

Apache License 2.0. See LICENSE.

About

No description, website, or topics provided.

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages