Skip to content
CAI
Software that uses CAICheck a score

bfxyzshb/poto-framework

49.3

Weak · 21 September 2026

4.8k

lines of production code

Java

primary language

4

measurements over time

CAI band scale
CAI trend line
CAI lens gauges

What this system is

This system is a Java-based framework designed for building domain-driven applications with a focus on state management and extensibility. It provides a repository layer that tracks changes to aggregate roots using object-diffing mechanisms, alongside a service provider interface (SPI) system for loading extensions and interceptors. The architecture supports Spring integration and manages dependencies for serialization, testing, and build processes.

Features

Introduces domain-driven repository pattern with object diff tracking

Adds a new repository layer supporting the Domain-Driven Design pattern, featuring an \AggregateManager\ and \DbContext\ that track changes to aggregate roots using an object-diffing mechanism. The \DbRepositorySupport\ provides a base implementation for repositories that manage entity state, while \DiffUtils\ leverages the \ObjectDifferBuilder\ to detect and report changes between snapshots and current states. This includes new entity base classes (\AbstractAggregateRoot\, \AbstractDomainObject\), repository interfaces, and utility classes for reflection and serialization. Additionally, the \CommandBus\ is updated to support generic types and SPI-based interceptors, and the \Response\ class is made generic.

poto-kernel/src · high confidence

Behavioural changes

Added ExtensionExecutor bean and SPI-based interceptor loading in Spring integration

The poto-spring module now registers an ExtensionExecutor bean and loads command dispatch interceptors via the SPI mechanism rather than relying solely on Spring bean discovery. This change introduces a new DefaultProtocal implementation and updates the CommandBusReferenceBuilder to use SPILoader for retrieving adaptive extensions and activated interceptors, enabling more flexible interceptor extension.

poto-spring · high confidence

Removal of compiled artifacts from poto-kernel and poto-spi modules

The compiled class files and build metadata for the poto-kernel and poto-spi modules have been removed from the repository. This includes the removal of the \ParametersResolverFactory\ mapping, the \Compiler\ and \SPIFactory\ service loader files, and the associated Maven build artifacts (such as \pom.properties\ and compiler status lists). This change eliminates the pre-compiled output from the source tree, likely as part of an initial commit or repository cleanup.

poto-kernel/target, poto-spi/target · high confidence

Removal of poto-log build artifacts

Generated build artifacts for the poto-log module have been removed. This includes the Maven archiver properties file, the list of compiled class files (SysLogger, LoggerFactory, SLFJLogger, Logger), and the source file lists for both main and test compilation steps. These are internal build outputs that do not affect the public API or user-facing functionality.

poto-log · medium confidence

Simplified Protocol interface and refactored SPI loader

The Protocol interface was simplified by replacing the Map-based parameter storage with a Set and adding a getExtensionName method. The SPILoader was updated to iterate over the new Set of parameters, and the getActivateExtension method was refactored to accept a String array instead of a single key. Additionally, the ExtensionExecutor class was added to facilitate extension loading, and new SPI configuration files were introduced for Compiler, SPIFactory, and Task implementations.

poto-spi/src · high confidence

Dependencies

Initial project setup and dependency configuration

The project was initialized with a comprehensive set of build and runtime dependencies. The root pom.xml adds fastjson 1.2.75, junit 4.12, and configures several Maven plugins (resources, deploy, compiler, assembly, release, jar, and source). The poto-kernel module adds poto-spi 1.0.0, fastjson, diffutils 1.3.0, java-object-diff 0.95, fst 2.56, javers-core 6.0.0-RC2, and excludes logback dependencies from atlas-npm-identities. The poto-spi module adds junit 4.11 for testing. The poto-spring module adds poto-spi 1.0.0 and commons-collections 3.2.1.

(dependencies) · medium confidence

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

How this codebase got here

Score

  • CAI 44 → 49 (+5.0)
  • Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.

Lenses

  • Code Health 85 → 90 (+5.4)
  • Architecture 100 → 96 (-3.7)
  • Maturity 32 → 36 (+4.3)
  • Readiness 26 → 33 (+6.8)
  • Security 92 → 92 (+0.0)

Resolved (9)

  • Coverage not included — suite not readable by the collector
  • Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
  • Duplicated block (11 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/SPILoader.java)
  • Duplicated block (9 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/compiler/JavassistCompiler.java)
  • Duplicated block (9 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/utils/AdaptiveSPIHelper.java)
  • No exposed public API
  • Scanner failed to run — not a clean result
  • Test reliability not included
  • dormant codebase — no living knowledge left to concentrate

New (17)

  • ClassTooLong: SPILoader (poto-spi/src/main/java/com/weibo/poto/spi/SPILoader.java)
  • Dependency hygiene PARTLY measured — Maven/Gradle declarations read, no dependency graph resolved
  • Documentation: no installation or build instructions (README.md)
  • Documentation: no project overview (README.md)
  • Duplicated block (14–15 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/SPILoader.java)
  • Duplicated block (8 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/compiler/JavassistCompiler.java)
  • Duplicated block (9–10 lines × 2) (poto-spi/src/main/java/com/weibo/poto/spi/utils/AdaptiveSPIHelper.java)
  • MethodTooLong: AdaptiveSPIHelper.createAdaptiveExtensionClassCode (poto-spi/src/main/java/com/weibo/poto/spi/utils/AdaptiveSPIHelper.java)
  • No assertions: test (poto-kernel/src/main/test/java/javadiff/ObjectDiff.java)
  • No direct assertions: shouldAnswerWithTrue (poto-spi/src/test/java/frame/SPILoaderTest.java)
  • No direct assertions: test (poto-spi/src/test/java/frame/SPILoaderTest.java)
  • No direct assertions: test2 (poto-spi/src/test/java/frame/SPILoaderTest.java)
  • No direct assertions: test3 (poto-spi/src/test/java/frame/SPILoaderTest.java)
  • Scanner failed to run — not a clean result
  • Scanner failed to run — not a clean result
  • Test project verifies nothing: poto-kernel (poto-kernel/src/main/test/java/javadiff/ObjectDiff.java)
  • Test project verifies nothing: poto-spi (poto-spi/src/test/java/frame/SPILoaderTest.java)

Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.

Survey your own repository

bfxyzshb/poto-framework was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.

About this page

  • The score is its most recent published measurement, taken on 21 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
  • Measured at commit e2b25c39339e46ad6dc5f34060b2756a1e0907e6 — the exact code this score is about.
  • Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
  • Measured by watchdog.canine.dev using codehealth-analyzer preprod-fa71c66cabd8.