YadaYuki/omochi
52.4
Adequate · 20 September 2026
1.4k
lines of production code
Go
primary language
4
measurements over time
What this system is
This system is a document search service that indexes and retrieves text content from movies and anime titles in both English and Japanese. It utilizes a Go-based API server backed by a MySQL database, employing specific tokenizers and ranking algorithms to process and store documents. The architecture supports containerized deployment and includes CLI tools for database migrations and data seeding.
Features
API server entry point and initialization logic added
The main entry point for the API service has been created at cmd/api/main.go. This file establishes the application startup sequence, including connecting to a MySQL database via the Ent ORM, initializing the term and search use cases with their respective repositories and infrastructure components (such as the Zlib compresser and TF-IDF ranker), and configuring the HTTP router on port 8081 to expose the /v1 API routes.
cmd/api · high confidence
Add seed data loading for movie and Doraemon documents
The application now includes seed data capabilities to load document lists from TSV files. A new \cmd/seeds/data\ package provides functions to parse TSV files (specifically \movie.tsv\ for English and \doraemon.tsv\ for Japanese) and extract document titles. This allows the system to initialize with pre-defined sets of movie and anime titles during the seeding process.
cmd/seeds/data · high confidence
Added Dockerfiles and database configuration for API and MySQL services
New Dockerfiles have been introduced for the API and database services to enable containerized builds and runtime. The API service Dockerfile uses a Go 1.18 Alpine base, installs the MariaDB client and Bash, and prepares the Go module environment. The database service Dockerfile is based on the official MariaDB image, installs timezone data, and initializes necessary socket and log files. Additionally, a custom MySQL configuration file (my.cnf) has been added to set UTF-8 character encoding, INNODB as the default storage engine, and enable general logging.
docker · high confidence
Added English document seeding tool
Introduced a new command-line tool at cmd/seeds/eng that seeds the database with English movie documents. The tool loads data from a TSV file, utilizes an English prose tokenizer and an Ent-based indexer to process documents concurrently, and stores them in the MySQL database.
cmd/seeds/eng · high confidence
Added Japanese document seeding capability
A new seeding tool has been added for the Japanese locale (cmd/seeds/ja) that loads documents from a TSV file and indexes them into the database. The process uses a Japanese tokenizer (JaKagomeTokenizer) and an entity indexer to concurrently process document batches, ensuring that Japanese text content is properly indexed for search.
cmd/seeds/ja · high confidence
Added database migration command
A new \migrate\ command has been added to the CLI, allowing users to initialize and apply database schema changes. The tool connects to the configured MySQL database and creates the schema using the Ent framework, with configuration enabled to drop existing indexes and columns during the migration process.
cmd/migrate · high confidence
Added server startup script with MySQL health check
A new shell script (scripts/start-server.sh) has been added to the project. This script waits for the MySQL database to become available by polling the connection until it succeeds, and then launches the Go API server from the cmd/api directory.
scripts · high confidence
Initial database schema and domain model for document search
This change introduces the foundational data structures and persistence layer for a document search feature. It defines the \Document\ and \Term\ entities with fields for content, tokenization, and timestamps, alongside supporting models for invert indexes and postings. The update includes the \ent\ ORM client code generated for these schemas, enabling database operations for documents and terms, as well as domain interfaces for search, indexing, tokenization, and ranking services.
pkg · high confidence
Dependencies
Initial Go module dependencies for Omochi
The project initializes its Go module (github.com/YadaYuki/omochi) with Go 1.18, introducing core dependencies for the application's functionality. This includes ent v0.10.1 for the entity framework, go-chi/chi/v5 v5.0.7 for HTTP routing, and database drivers for both MySQL (go-sql-driver/mysql v1.6.0) and SQLite (mattn/go-sqlite3 v1.14.13). Additionally, natural language processing capabilities are added via kagome/v2 v2.8.0 and jdkato/prose/v2 v2.0.0, alongside utility libraries for UUID generation and synchronization.
(dependencies) · high 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
This is the PUBLIC form of this artifact. Findings are listed in full, but the details of SECURITY findings — which rule fired, in which file, on which line, and how to fix it — are deliberately withheld, and any secret-scanner results are excluded entirely. Where detail is absent here it was REMOVED FOR PUBLICATION; it is not missing from the analysis. The complete artifact is available from the repository owner.
Score
- CAI 48 → 52 (+4.4)
- Rubric changed (rubric-2026.08.17 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 99 → 95 (-3.6)
- Architecture 100 → 69 (-31.0)
- Maturity 35 → 47 (+12.2)
- Readiness 26 → 37 (+11.7)
- Security 93 → 91 (-1.7)
- Domain Modelling 100 → 100 (+0.0)
Resolved (10)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — no supported dependency manifest was read
- Duplicated block (10 lines × 2) (pkg/infrastructure/persistence/entdb/term_ent_repository.go)
- Duplicated block (12 lines × 2) (pkg/infrastructure/searcher/searcher.go)
- Duplicated block (13 lines × 2) (cmd/seeds/eng/seed.go)
- No exposed public API
- Test reliability not included
- The README begins an 'Start Application' section and ends in a demo/Demo block but does not yet describe how to run the engine locally or access the API. (README.md)
- complexity unreadable for .go — churn × complexity hotspots could not be measured
- dormant codebase — no living knowledge left to concentrate
New (29)
- Dependency pinned to a stale untagged commit: golang.org/x/sync
- Duplicated block (25 lines × 2) (pkg/infrastructure/searcher/searcher.go)
- Duplicated block (28 lines × 2) (cmd/seeds/eng/seed.go)
- Duplicated block (9 lines × 2) (pkg/infrastructure/persistence/entdb/term_ent_repository.go)
- High CVE: [GHSA redacted] (go.mod)
- Hotspot: pkg/infrastructure/searcher/searcher.go (pkg/infrastructure/searcher/searcher.go)
- Indexer.IndexingDocument (cognitive 19) (pkg/infrastructure/indexer/indexer.go)
- Medium CVE: [GHSA redacted] (go.mod)
- Medium CVE: GO-2023-1568 (go.mod)
- Medium CVE: GO-2026-6179 (go.mod)
- Medium IaC: CKV_DOCKER_9 (docker/db/Dockerfile)
- Medium IaC: WD-DOCKER-0003 (docker/api/Dockerfile)
- Medium: security finding (details withheld)
- Medium: security finding (details withheld)
- No ADRs found
- Outdated: entgo.io/ent
- Outdated: github.com/go-chi/chi/v5
- Outdated: github.com/go-sql-driver/mysql
- Outdated: github.com/google/uuid
- Outdated: github.com/ikawaha/kagome-dict/ipa
- …and 9 more
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
YadaYuki/omochi 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 20 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 b8a6b6bfccfb9673b84d1a5c4adc1aa2aeba27c4 — 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-28e75b8e3254.