Skip to content

Technical evaluation

A report that rates the technology of Matsuba, a business file-sharing platform, on a five-level scale for each axis, with the evidence behind each rating.

Evaluated on
Subject
Source code and development records as of
Evaluated by
Generative AI (Claude Code), analyzing the source code and development records at the developer's request
Note
Not an assessment by a third-party organization

Summary

Nine axes score 4 or higher (architecture, data, features, cloud, and documentation score 5). Room for improvement: making CI failures block merges, keeping dependency updates flowing, publishing accessibility check records, and documenting a threat model.

Radar chart of scores per axis12 axes rated out of five. The scores are listed after the chart.123456789101112
  1. 1Technology choicesStandard3 out of 5
  2. 2Architecture and maintainabilityLeading5 out of 5
  3. 3Data designLeading5 out of 5
  4. 4FeaturesLeading5 out of 5
  5. 5UI, UX, and designAdvanced4 out of 5
  6. 6SecurityAdvanced4 out of 5
  7. 7Automated testingStandard3 out of 5
  8. 8CI/CDStandard3 out of 5
  9. 9Cloud platform and operationsLeading5 out of 5
  10. 10DocumentationLeading5 out of 5
  11. 11Development processAdvanced4 out of 5
  12. 12Use of generative AIAdvanced4 out of 5
Scores per axis out of five. Numbers match the vertices of the radar. The dashed ring marks a score of 3, the standard level.

1.Key findings

All axes reach the reference level (a score of 3) or higher. Automated testing and CI/CD fall short of a score of 4 for a shared reason: no setting makes a failing CI run block the merge (and there are records of merges made before CI finished or while it was failing). CI/CD also has yet to pin external actions to commit hashes. The Technology choices axis stayed at a score of 3 because, by the subject date, there had been periods when merging of automated dependency updates stopped and vulnerability alerts had been fixed in batches, so updates and fixes cannot be said to run continuously as a mechanism. The conditions for a score of 5 that remain on the four axes that stayed at a score of 4 concern mainly records and disclosure: publishing the record of accessibility checks and extending automated enforcement of the accessibility rules, a verification record mapped to the OWASP ASVS Level 2 requirements and a threat model document, retrospectives that include comparing estimates with actuals, and disclosing the limits of the use of generative AI.

1.1Strengths

  • The design conventions themselves run as automated tests, automatically detecting layer violations and misuse of the database entry points (Architecture and maintainability, Automated testing).
  • Authorization centers on row-level security in the database, and a dedicated test suite checks, for each user role, which tables and operations are permitted, against a real database (Data design, Security).
  • The Cloud Run runtime settings and the scheduler and monitoring settings are applied to live resources from declarations in code, and checks after each deployment and every day automatically detect drift from the declarations (CI/CD, Cloud platform and operations).
  • Statements in the documents are automatically reconciled with values derived from the implementation, and requirement, feature, and screen IDs trace the documents to the implementation (Documentation).
  • Business domain requirements such as external sharing and receiving, virus scanning, retention and deletion, and audit are implemented as part of the product, including monitoring, anomaly detection, and settings for operators (Features).

1.2Room for improvement

  • A setting under which a CI failure mechanically blocks the merge (required checks), and a mechanism that makes production deployments wait for CI to finish (Automated testing, CI/CD).
  • Operations that keep dependency updates and vulnerability fixes running without interruption (automated vulnerability checks in CI, deadlines for merging updates), a record comparing alternatives for the core runtime, data store, and authentication platform together with a format for decision records (in the form of ADRs), and pinning third-party GitHub Actions to commit SHAs (Technology choices, CI/CD, Documentation).
  • Publishing a record of checking the WCAG 2.2 Level AA items, extending automated enforcement of the accessibility rules, and introducing automated accessibility checks that scan rendered screens, such as axe (UI, UX, and design).
  • A verification record mapped to the OWASP ASVS Level 2 requirements, and a threat model document that brings assets, trust boundaries, and threats together in one place (Security).
  • Retrospectives that include comparing estimates with actuals, with a record of the resulting improvements to the procedures, and disclosure of the limits of the use of generative AI (patterns of error, findings rejected on verification, and the burden of verification loops), together with defining the scope in which people read code diffs (Development process, Use of generative AI).

Back to contents

2.Evaluation method

Evaluator
At the developer's request, generative AI (Claude Code) analyzed the source code, configuration, and development records.
Basis
Five-level criteria for each axis were defined first with reference to published guidelines, and the facts (code, configuration, and figures) were scored against them. Each rating links to the diagrams, documents, and figures on this site (in Japanese) as evidence.
As of
The subject is the source code and development records as of , evaluated on .
Note
This is not an assessment by a third-party organization. It covers two perspectives, technical and market, that the project overview slides do not.

In defining the criteria, ISO/IEC 25010[1], the international standard for product quality models, is used to organize the aspects, and among guidelines that define levels, the levels of OWASP ASVS[2] for security and of WCAG 2.2[3] for accessibility are borrowed as reference points on the scale. Borrowing a guideline's levels as reference points does not claim conformance or any certification. The full list of guidelines consulted for each axis is in the table in the appendix.

The reference point of the scale is the level a typical business system development team usually meets (a score of 3). Scores of 3 through 5 are cumulative: a score of n requires meeting every condition from level 3 through level n. The fact that one person developed the system is presented in figures in the next section, and no adjustment is applied to the scores for it. Every axis lists room for improvement: for an axis below a score of 5 it states the conditions not yet met for moving up to the next level, and for an axis that scores 5 it gives points for maintaining and extending the practices.

The evaluation has limits. A score of 3 is a level defined by the practices that published guidelines treat as basic, not a measured average of real teams. The evidence comes from reading the source code, configuration, and records as of the subject date, and it does not include runtime tests (operation with assistive technologies, checks of the runtime configuration, and actual delivery of notifications) or third-party inspections such as vulnerability assessments. The criteria set no numeric thresholds such as test coverage rates. Published guidance also advises against a uniform target[4].

For the three axes Features, Documentation, and Use of generative AI, no published standard defines levels, so their levels are this report's own definitions, built up from practices in published material. The Use of generative AI axis evaluates the use of the same generative AI that serves as the evaluator; the provider's documentation is used as a list of practices, not as evidence of effectiveness. Scoring used one shared evidence log. Separate instances of the generative AI (separate conversations), not shown the first round of scores, judged each condition independently; another instance compared the two sets of judgments, and discrepancies and conditions judged as not met were rechecked directly against the source code as of the subject date. Where the readings of a condition diverged, the developer reviewed the evaluator's recommendation and confirmed the result.

Rating scale

  1. 5Leading

    Leading practices in the industry are in place systematically, at a level others can refer to. Practices corresponding to the tiers above the basic tier of the published guidelines are in place.

  2. 4Advanced

    In addition to standard practices, several practices typical of an experienced team are in place.

  3. 3Standard

    The level a typical business system development team usually meets. Practices corresponding to the basic tier of the published guidelines are in place.

  4. 2Partial

    Some standard practices are missing, and operation or change may be hindered.

  5. 1Insufficient

    Basic practices are missing.

Axes and their focus

  1. 1Technology choices

    Alignment with industry standards, market value, and consistency of choices and dependency management

  2. 2Architecture and maintainability

    Structural consistency, ease of change, readability, attention to performance hot spots, and mechanisms that keep conventions enforced

  3. 3Data design

    Schema integrity and normalization, access control, and the design of search, history, partitioning, and migrations

  4. 4Features

    Breadth and depth of features, reflection of the business domain, and completeness of exceptional cases and administration

  5. 5UI, UX, and design

    Consistency through a design system, coherent interaction, accessibility, and responsiveness (perceived speed)

  6. 6Security

    Authentication and authorization, defense in depth, handling of secrets, and preparedness for threats

  7. 7Automated testing

    Layers and coverage of tests, production-like verification, and execution and maintenance in CI

  8. 8CI/CD

    Scope of automation, safety and reproducibility of deployment, and handling of keys and permissions

  9. 9Cloud platform and operations

    Service selection and loose coupling, scaling with load, observability, configuration management and drift detection, and the balance of operational load and cost

  10. 10Documentation

    Coverage and freshness of design, operations, and user documentation, explanation through diagrams, and consistency with the implementation

  11. 11Development process

    Coverage of phases from requirements to deployment, records of artifacts and decisions, and verification mechanisms

  12. 12Use of generative AI

    Systematic integration of generative AI into development, operations that ensure quality through people and mechanisms, and transparency about its use

Back to contents

3.Scale and team

Screens
68
API endpoints
375
Database tables
61
Background jobs
30
Test files
1,582
Lines of code
835,979
Work hours
727hours
Development period
4months

as of 2026-09-17

Matsuba was built by one developer who handled every phase: requirements analysis, design, implementation, testing, deployment, and documentation. The development period is 4 months, and the recorded work time is 727 hours. Development uses generative AI (Claude Code) in every phase, and the methods and quality assurance of that use are evaluated under the Use of generative AI axis.

The source code is kept in a single repository with 5 applications and 12 shared packages. The frontend and the API are written in TypeScript, file scanning and synchronization to external storage are written in Go, and the database structure is managed with 79 migrations. The implementation is divided into 10 stages; each unit of work within a stage keeps its plans and work logs, and most units of work also keep specifications.

The breakdown of work hours by phase is in the Work hours table in the appendix, and the lines of code by language and by workspace are in the Lines of code tables.

Back to contents

4.Evaluation by axis

Each card below presents, in this order, the axis name and its focus, the score and its level name, the criteria for that score, a summary, the evidence, and the room for improvement.

4.1Technology choices

Focus: Alignment with industry standards, market value, and consistency of choices and dependency management

Standard

Criterion for this score: Widely adopted technologies are used consistently at supported versions, dependency versions are pinned, and the reasons for the choices are documented.

Next.js, Node.js, Go, and PostgreSQL are used at supported versions, technologies for the same role are not duplicated, dependencies are pinned by a lockfile, and the reasons for the choices are documented. Automated updates are configured, but there have been periods when merging them stopped, and vulnerability alerts have been fixed in batches.

Evidence

  • In each category (frontend, API, asynchronous processing, data layer, authentication) one main technology is used per role, and Next.js, Node.js, Go, and PostgreSQL, which have official support policies, are at versions within their support periods  Technologies: overview
  • Dependencies are pinned by a lockfile, update proposals arrive automatically every week, and there is a procedure for reviewing security alerts weekly  Technologies: CI/CD
  • The frontend and the API share the same Zod schemas, types are derived from database enumerations and event contracts, and generated artifacts are diff-checked in CI  Application architecture diagram
  • The baseline concept document records the reasons for the core technology choices and the technologies not adopted, with reasons  Document: baseline concept

Room for improvement

By the subject date, merging of automated dependency updates had stalled for several weeks on two occasions, and CI has no automated vulnerability check (the weekly review procedure was put in place just before the subject date). The condition for the next level is a mechanism that keeps dependency updates and vulnerability fixes running without interruption (such as automated checks in CI and deadlines for merging updates).

4.2Architecture and maintainability

Focus: Structural consistency, ease of change, readability, attention to performance hot spots, and mechanisms that keep conventions enforced

Leading

Criterion for this score: The design conventions themselves run as automated tests, and cross-cutting concerns such as isolating side effects and guaranteeing consistency are enforced through shared types and mechanisms.

The four backend layers and the feature-based frontend layout are documented, and layer violations and misuse of the database entry points are detected by ESLint and convention tests. API and inter-service event contracts are generated from schemas and diff-checked, and side-effect isolation and consistency guarantees are enforced by shared mechanisms.

Evidence

  • The four backend layers, with their responsibilities and dependency directions, are documented, and ESLint rules restrict cross-layer imports and which of the three database entry points (users, share link recipients, and the system) each part of the code may use  Design rules diagram (backend)
  • The API definition (OpenAPI) is generated from each route's Zod definitions and committed, TypeScript and Go types for inter-service event messages are generated from Protocol Buffers, and CI regenerates the committed outputs and checks them for differences  Application architecture diagram
  • There are 78 tests that mechanically check design conventions, and by rule they find their targets by scanning the code rather than from a hand-maintained list  How counted: convention tests
  • Heavy work (virus scanning, thumbnail generation, synchronization to external storage, and notification delivery) is offloaded asynchronously through the outbox, Pub/Sub, separate services, and jobs  Detailed system overview diagram

Room for improvement

Typing the event topics and payloads written to the outbox, generating contracts for notification events, automatically checking the order of the frontend layers, and automatically detecting excessive query counts per request (N+1 queries) remain room for expansion. Most convention tests run in a job whose start depends on repository variables and the scope of the change, and only some are named in the job that runs every time, so widening that set is another task.

4.3Data design

Focus: Schema integrity and normalization, access control, and the design of search, history, partitioning, and migrations

Leading

Criterion for this score: Access control rules are verified by automated tests, types and enumerations are derived from the schema definition to prevent drift, and the data flows are documented as diagrams.

The 61 tables are managed through a Prisma schema and 79 migrations, with constraints and indexes aligned with the requirements. Access control centers on row-level security and is verified by tests against a real database; there is an append-only audit log, and types and enumerations are derived from the schema.

Evidence

  • Every table has a primary key, and unique constraints, CHECK constraints, and partial indexes express business rules in the schema  ER diagram (detail)
  • There are 103 row-level security policies, and tables with row-level security enabled but no policy deny every row to user connections  ER diagram (overview)
  • Access control rules are verified against a real PostgreSQL database in a dedicated test suite that checks, for each user role, which tables and operations are permitted  Design rules diagram (database)
  • Types are derived from the schema's enumerations to prevent drift, and the overall shape and flow of the data are shown in the ER diagram and the data architecture diagram  Data architecture diagram

Room for improvement

Some foreign keys still lack an index despite the design rule requiring one, and no check verifies coverage. Checks that pin, against a full list, whether row-level security is enabled or disabled on every table and whether every policy follows the naming and target-role conventions, and a retention and partitioning design for access logs, remain room for expansion.

4.4Features

Focus: Breadth and depth of features, reflection of the business domain, and completeness of exceptional cases and administration

Leading

Criterion for this score: Features are built on a consistent conceptual model (permissions, lifecycle, events), and operator-facing features (monitoring, anomaly detection, settings) are built into the product.

The business flows from creating a shared space (a Box) through external sharing and receiving, virus scanning, synchronization to Google Drive, and retention and deletion are implemented, with exceptional cases for permissions, failures, and limits and with administration features including monitoring and settings. Help and notifications are tied to features, which are built on a shared vocabulary of permissions, lifecycle, and events.

Evidence

  • With 68 screens, 375 API endpoints, and 30 background jobs, there are features and screens for each area of the requirements  Project overview slides
  • For permissions, one role-based permission table is shared across the UI, the API, and authentication, row-level security layers the same role distinctions onto the database side as well, and returning 'not found' for resources the user may not access and making disabled Boxes read-only are handled by shared mechanisms  Security and authorization architecture diagram
  • CI checks that the 95 user-facing help articles cover every entry of the feature catalog and the screen catalog  How counted: help articles
  • For operators, the product includes a monitoring dashboard, anomaly alerts with response guides, settings, and usage screens  Document: administration and operations

Room for improvement

Among the exceptional cases and notifications, storage quotas per Box or per user are not yet enforced, the issuer is not notified when a share link expires or reaches its limit, and members are not notified when files or folders are placed on a hold (HOLD) that protects them from automatic deletion or are archived; payload schemas are declared for only some of the events.

4.5UI, UX, and design

Focus: Consistency through a design system, coherent interaction, accessibility, and responsiveness (perceived speed)

Advanced

Criterion for this score: Implementation and checks targeting WCAG 2.2 Level AA (contrast, visible focus, status announcements) are part of the process, and the loading, empty, and error states are designed, with attention to perceived speed.

The UI is unified through design tokens and shared components and is implemented in line with the main WCAG 2.2 Level A success criteria. Checks targeting Level AA (measured contrast, convention tests for focus and announcements) are built into the process, and loading, empty, and error states and recovery through the trash and undo are in place.

Evidence

  • The design system document defines the values for color, typography, radius, and spacing, and they match the implementation's tokens  Design system page
  • Convention tests enforce the double focus ring and the structure of live regions, mechanically blocking per-element overrides  Technologies: static analysis
  • Loading, empty, and error states are rendered by shared components and by Suspense and error boundaries, and deletions of files and folders can be recovered through the trash and undo  Project overview slides
  • Perceived speed is addressed by transferring file content directly from the browser to storage and by serving each screen's static shell first  File lifecycle diagram

Room for improvement

No record of checking the Level AA success criteria (a table of results per criterion) is published, and automated enforcement of the rules remains partial in areas such as the contrast of input field borders, conditionally appearing live regions, and target size. Even at Level A, advance notice of the automatic submission of one-time codes and a way for users to turn off single-character shortcuts are not yet in place, and introducing automated checks that scan rendered screens (such as axe) is room for improvement.

4.6Security

Focus: Authentication and authorization, defense in depth, handling of secrets, and preparedness for threats

Advanced

Criterion for this score: Practices toward the main chapters of Level 2 are in place: multi-factor authentication, fine-grained session and permission control, database-side access control, audit logging, and dependency vulnerability handling.

The implementation follows the OWASP ASVS Level 1 requirements, with a CSP and dedicated secret management. There are multi-factor authentication for external users, session control, row-level security, an append-only audit log, and fixes for dependency vulnerabilities, and records of self-reviews of authentication and authorization by the generative AI are kept.

Evidence

  • Authorization for resources inside a shared space (a Box) is checked twice, on the server and by 103 row-level security policies, and the tables and columns readable by unauthenticated users are limited to what is needed  Security and authorization architecture diagram
  • External users are required to use multi-factor authentication with a one-time code sent by email, and sessions and trusted devices can be revoked by the users themselves and by administrators  Technologies: auth and authorization
  • Uploaded files are virus-scanned in the unscanned bucket and then moved to either the clean bucket or the quarantine bucket, and a harmless EICAR test file is run through the scanning path every month as a self-check  Document: upload virus scanning
  • Secrets live in a dedicated management service, CI authenticates without key files, and the origin of secrets is checked after each deployment  Google Cloud service architecture diagram

Room for improvement

There is no verification record mapped to the OWASP ASVS Level 2 requirements and no threat model document that brings together assets, trust boundaries, and threats; the self-reviews are limited to authentication and authorization. Some response headers (nosniff for X-Content-Type-Options, Referrer-Policy), a review of the password rules (checking against commonly used passwords), and security checks by static analysis are also room for improvement.

4.7Automated testing

Focus: Layers and coverage of tests, production-like verification, and execution and maintenance in CI

Standard

Criterion for this score: Unit and integration tests cover the main features and run in CI on every change.

Unit, integration against a real database, row-level security, performance, end-to-end, and convention layers are separated by purpose and run in CI according to the scope of each pull request's changes, and the policy of not using mocks in principle is defined. No setting makes a failure block the merge, and there are records of merges made before CI finished or while it was failing.

Evidence

  • CI starts a database bundled with the same full-text search extension as production, applies the migrations and access control definitions in the same order as production, and then runs the integration tests  Technologies: testing
  • There are 1582 test files, split into unit (TypeScript and Go), integration, row-level security, performance, and end-to-end layers  How counted: test files
  • The test suite includes 78 tests that mechanically check design conventions, plus dedicated lanes for access control and performance  How counted: convention tests
  • The policy of not using mocks in principle and a list of the substitutes used instead of mocks are documented, and a rule quarantines flaky tests and returns them only after the root cause is fixed  Technologies: testing

Room for improvement

There is no setting that mechanically blocks merges (required checks), and merges before CI finished or while it was failing were repeated, in some cases letting defects reach production; the condition for the next level is that failures block merges. The conditions of the higher levels, such as end-to-end tests and integration tests against production-like dependencies, purpose-specific lanes, a documented policy, and management of run time and flakiness, are met, and this single point is what separates the levels.

4.8CI/CD

Focus: Scope of automation, safety and reproducibility of deployment, and handling of keys and permissions

Standard

Criterion for this score: Checks and builds run automatically on every change, the pipeline definitions are under version control, and production deployments go through the same automated path.

Verification and deployment workflows are separated; only the services that changed are deployed to production; keyless authentication, automated dependency updates, and post-deployment reconciliation against declarations are in place; and database migrations are applied manually by design. However, CI results are not a condition for merging, and deployments do not wait for CI to finish.

Evidence

  • The frontend deployment waits for the API deployment of the same change to finish, so that a new frontend does not meet an old API  CI/CD pipeline diagram
  • Authentication uses Workload Identity Federation without key files, no connection information for the production database is kept in GitHub, and CI uses only disposable databases for testing  Google Cloud service architecture diagram
  • After every deployment, the runtime configuration and the origin of secrets are read back from the live service and reconciled with the declarations, and after an API deployment, the scheduler and monitoring settings are also checked to match their declarations  CI/CD pipeline diagram
  • Diff checks of generated artifacts are placed in the job that runs every time regardless of repository variables or the scope of the change, and dependency updates take the form of merging automated proposals that arrive weekly  Technologies: CI/CD

Room for improvement

There is no setting that mechanically blocks merges (required checks), and because production deployments do not wait for CI to finish either, there have been cases where failing changes were deployed. The conditions for the next level are that CI results are a condition for merging and deployment and that third-party GitHub Actions are pinned to commit hashes rather than major version tags; post-deployment verification, a rollback procedure, and reuse of the definitions, which belong to the level above that, are already in place.

4.9Cloud platform and operations

Focus: Service selection and loose coupling, scaling with load, observability, configuration management and drift detection, and the balance of operational load and cost

Leading

Criterion for this score: Drift between declarations and live resources is detected mechanically, application-level alerts and retention and deletion operations are automated, and service level objectives, incident procedures, and cost and operational trade-offs are documented.

Managed services are used by purpose around Cloud Run, and asynchronous processing is loosely coupled through Pub/Sub. The system has dedicated service accounts, daily reconciliation of declarations against live resources, and automated alerts and retention and deletion, and the target values of its service level objectives, incident procedures, and cost trade-offs are documented.

Evidence

  • Compute runs on Cloud Run services and jobs, with managed services for storage, messaging, scheduling, secrets, and observability each used for its purpose  Technologies: Google Cloud
  • Events finalized in business transactions go through the outbox and are delivered by Pub/Sub, and every topic has a dead-letter topic and its subscription paired with it  Detailed system overview diagram
  • Scheduler and monitoring settings are applied to live resources from code declarations, and drift from the declarations is detected mechanically after deployment and daily  Technologies: observability
  • Service accounts are separated by purpose, permissions are granted per resource as a rule with project-wide grants limited to a few, and no key files are issued  Google Cloud service architecture diagram

Room for improvement

Service level objectives remain a table of targets, without indicator definitions, measurement, or an error budget. Records of restoration drills, a standard form for incident retrospectives (postmortems), criteria for judging incident severity, and extending reconciliation with the declarations to bucket settings and to IAM bindings on resources other than Pub/Sub remain room for expansion.

4.10Documentation

Focus: Coverage and freshness of design, operations, and user documentation, explanation through diagrams, and consistency with the implementation

Leading

Criterion for this score: Design decisions are recorded (what was chosen and what was not), documents trace to the implementation and tests, and mechanisms check the documents' freshness and consistency.

The project has 343 design and implementation documents and 95 user-facing help articles, and architecture and ER diagrams explain the whole. Writing and placement conventions are enforced by automated checks, statements in the documents are reconciled with values derived from the implementation, requirement IDs trace to the implementation, and the reasons for rejected options are recorded.

Evidence

  • There are 343 design and implementation documents in six sections, such as the baseline concept, the feature catalog, the design rules, and the implementation plans and records, with conventions for placement and writing  How counted: design and implementation documents
  • A set of architecture and ER diagrams explains the whole, and user-facing help is built into the product  Architecture diagrams
  • The automated convention checks extend beyond the code to the documents and run in CI  Design rules diagram (enforcement)
  • Documents trace to the implementation through requirement, feature, and screen IDs, and the implementation traces to tests through placement conventions; the baseline concept document records the technologies not adopted and why  Document: baseline concept

Room for improvement

The README and the diagram descriptions are outside the scope of the CI checks; parts of the README still have stale descriptions of switching to the development environment and of the migration procedure, and the diagram index still mentions diagrams that do not exist. The baseline concept records why technologies were not adopted, but a place and format for recording technology decisions across the project (in the form of ADRs, Architecture Decision Records), a side-by-side comparison of alternatives for the core platform, extending tracing from requirements to tests, and a broken-link check remain room for expansion.

4.11Development process

Focus: Coverage of phases from requirements to deployment, records of artifacts and decisions, and verification mechanisms

Advanced

Criterion for this score: Each unit of work leaves specification, plan, implementation, and review artifacts; the reasons for decisions are traceable; and completion criteria are confirmed by verification.

The steps from confirming requirements through release are defined in procedures; each unit of work leaves plans and work logs (most also leave specifications and review records); the reasons for decisions, the issues, and the work hours are recorded; and completion criteria are confirmed by verification. Changes go through CI checks per pull request, but there is no setting that makes a failure block the merge.

Evidence

  • Each phase's procedure has numbered steps and completion conditions, and the scaffolding for a unit of work is generated from templates  Document: development workflow
  • Changes are merged per pull request and go through CI checks every time (there is no setting that makes a failure block the merge)  CI/CD pipeline diagram
  • Work hours are recorded per phase, and over the four-month development period they total 727 hours  How counted: work hours

Room for improvement

There is no standard retrospective, and comparison of estimates with actuals exists only at the project level in the monthly progress reports. The condition for the next level is to hold retrospectives that include comparing estimates with actuals and to record the resulting improvements to the procedures (for example, estimates for each unit of work would provide material for the comparison).

4.12Use of generative AI

Focus: Systematic integration of generative AI into development, operations that ensure quality through people and mechanisms, and transparency about its use

Advanced

Criterion for this score: Project-specific instructions, conventions, and skills are version-controlled and given to the agents, and roles are separated by phase from specification through implementation and review.

Instructions, skills, and agent definitions are version-controlled, and generative AI (Claude Code) is used with roles separated from specification through implementation and review. Outputs are checked by iterative review by separate instances, the developer's design decisions and approval of merges, convention tests, and static analysis, and the method of use is described in a development process document.

Evidence

  • The repository version-controls 13 project-specific skills and role-specific agent definitions together with the instructions, and roles for specification, implementation, and review are separated by phase  How counted: agent skills
  • The agent responsible for implementation returns questions instead of filling in ambiguities by guesswork, and writes to git (such as commits) happen only in the closing procedure, after human confirmation  Document: development workflow
  • The agent responsible for review returns findings without editing files and iterates until no findings remain, and review records for specifications and implementation remain in most units of work  Document: development workflow
  • Code written by the generative AI is checked in CI by static analysis, type checking, 78 convention tests, and diff checks of generated artifacts  How counted: convention tests

Room for improvement

The method of use is described in a development process document, but the description of its limits covers only part of them, such as not letting UI measurements replace human visual checks, and there is no description for readers of patterns of error, findings rejected on verification, or the burden of verification loops. Defining the scope in which people read code diffs, and making it a rule to require review by a separate instance also for fixes made outside the review phases (responding to feedback and remediation that spans several places), are also room for improvement.

Back to contents

5.Notable design decisions

5.1Contracts generated from schemas at three boundaries

At three boundaries (between the frontend and the API, for events between services, and at the database), contracts are not written twice by hand. The frontend and the API share the same validation schemas, and the API definition is generated from the input and output validation schemas declared for each route and committed to the repository; CI regenerates it every time and fails if there is any difference. For events between services, TypeScript and Go types are generated from Protocol Buffers definitions; the committed Go output passes the same diff check, and the TypeScript output is not committed but regenerated on every build. Database enumerations are derived from the schema definition, and static analysis blocks hard-coded values.

What the frontend and the API share is the shape of the validation schemas and fixed constants that break unless both sides agree on the same value. Values that vary with administrator settings or the environment are not shared but passed in responses, because when the frontend and the API are deployed separately, there are moments when only one side is new. The frontend does not import the API's types directly; type sharing is handled entirely by the validation schemas in the shared package. This decision is part of the evidence for Technology choices and Architecture and maintainability. The overall picture is in the application architecture diagram, and the technologies used are in the API and monorepo sections.

5.2Authorization centered on row-level security in the database

The unit of authorization is not a tenant but a shared space (a Box), and the same user can belong to several Boxes with different roles. A single role-based permission table is shared by the frontend, the API, and the authentication platform, and as the last layer, row-level security in the database holds the same role distinctions in SQL and enforces the scope of reads and writes with 103 policies. Rows without permission are returned as "not found" rather than denied, so that whether they exist is not revealed. Entry to the database is limited to three paths (users, recipients of share links, and the system) plus a dedicated entry for the authentication platform (with archiving of the audit log as the only documented exception), and static analysis (import restrictions) enforces which code can use which entry.

The policies follow conventions for naming and for stating the target roles explicitly, and a dedicated test suite applies the definitions to a real PostgreSQL database in the same order as production (migrations, then permission definitions, then policies) and checks, for each user role, which tables and operations are permitted. The authentication and REST API features provided by the managed database service are not used, and only the system's own services connect to the database. Tables that the authentication platform reads and writes without a user context are excluded from row-level security, and the reasons are documented. The diagrams are the security and authorization architecture diagram, the ER diagram (overview), and the storage and database architecture diagram, and the related axes are Data design and Security.

5.3Isolating side effects through an outbox

A convention keeps business transactions from directly triggering external side effects such as email, messaging, task queues, storage operations, and synchronization to external storage. Side effects that can take place afterward are written to the outbox in the same transaction as the update of the business data, a periodic dispatch job delivers them to Pub/Sub, and each service receives them. Updates and notifications do not diverge, and rows that fail are isolated at the retry limit and can be resubmitted from the administration screen. Receivers deduplicate deliveries by event ID (with records of processed events or unique constraints), and email sending is split into two transactions, before and after the send, to prevent sending twice.

Every topic has a dead-letter topic and its subscription paired with it, so messages that cannot be delivered do not disappear silently. The decision on who receives a notification is also gathered in one place. There are 57 notification types, and each process that resolves recipients must declare its "grounds for notifying each recipient" as a type. Exceptions to the conventions, such as sending authentication emails directly, are stated in the documents with reasons. The diagrams are the event-driven notification delivery diagram and the detailed system overview diagram, and the related axes are Architecture and maintainability and Cloud platform and operations.

5.4Configuration management by reconciling declarations with live resources

The cloud configuration does not use an infrastructure-as-code tool such as Terraform; the setup procedures are treated as the source of truth, and the parts that change often are declared in code and reconciled with live resources. The project does not put only some resources under such a tool, because that would create dual ownership by the tool and by hand, making it unclear which one is the source of truth. The deployment workflows declare the Cloud Run runtime settings and the injection of secrets, and every deployment reads them back from the live service to confirm that they match the declarations and that the secrets come from Secret Manager. For the scheduler and monitoring settings, declarations generated from a registry in code are committed, so the pull request diff serves as the change plan, and after deployment the declarations are applied and checked to confirm that no difference remains.

Deployments issue no key files at all and instead impersonate service accounts through Workload Identity Federation, and the paths that call services (event pushes, task delivery, and internal endpoints) authenticate with OIDC. Resources outside the declarations are reproduced from setup procedures with check items, and a daily check job reports drift between declarations and live resources as in-app alerts. The diagrams are the CI/CD pipeline diagram and the Google Cloud service architecture diagram, the technologies are in the observability section, and the related axes are CI/CD and Cloud platform and operations.

5.5The scanning and quarantine lifecycle for uploads

Uploaded files are handled in three tiers of buckets: unscanned, clean, and quarantine. The file content is transferred directly from the browser to storage with a signed URL, a scanning service that receives the upload-completion event from storage runs a virus scan, and the file moves to the clean or the quarantine bucket depending on the result. Moves always follow the order "copy, commit in the database, delete the original", so the original is not lost even if a step fails midway. The current version visible to users is only the latest version that passed the scan, and the previous version stays usable while a replacement is in progress.

Access to the quarantine bucket is split between a principal that "can delete but cannot read" and a principal that "can read only when impersonated", so that quarantined files cannot be retrieved through the normal download path. The thumbnail generation service, which parses users' files, has no permissions on storage, the database, or secrets. The scanning path runs a monthly self-test with the EICAR test file, and failures to update the virus definition files are also reported as anomalies. The diagrams are the file lifecycle diagram and the Google Cloud service architecture diagram, the document is "virus scanning of uploaded files", and the related axes are Security and Features.

5.6Letting machines enforce the conventions

The design conventions are not left to documents and reviews alone; they also run as automated tests. There are 78 convention tests in the dedicated directories (other checks of the same kind exist as well), and the rules for building them are to find their targets by scanning the code rather than from a hand-kept list and to assert that detection does not pass vacuously; in many of the checks, the detector itself also has positive and negative samples. Most convention tests run in a job whose start depends on repository variables and the scope of the change, so the checks that must hold even on pull requests where that job does not run are named in the job that runs every time, and the diff checks of generated artifacts are placed there as well.

The same idea extends to the documents: CI runs, every time, a check that reconciles statements in the documents (API endpoints, screen routes, topics, and the DNS records for sending email) with values derived from the implementation at run time, and a check of the writing rule that documents describe only the current state, not its history. Rules that relied on human attention broke down repeatedly, which led to pairing each convention with a mechanical check. The diagram is the design rules diagram, the technologies are in the static analysis section, and the related axes are Architecture and maintainability, Documentation, and Use of generative AI.

Back to contents

6.Appendix

6.1Axes and the guidelines consulted

These are the published guidelines consulted when defining the five-level criteria for each axis. The numbers correspond to the list of sources.

AxisGuidelines consulted
Technology choicesThe official support policies of each technology[5][6][7][8], The Twelve-Factor App[9], and the OpenSSF Scorecard checks[10]
Architecture and maintainabilityMaintainability in ISO/IEC 25010[1], DORA's Code maintainability[11] and Loosely coupled teams[12], and The Twelve-Factor App[9]
Data designThe constraints chapter of the PostgreSQL documentation[13] and DORA's Database change management[14]
FeaturesFunctional suitability in ISO/IEC 25010[1]
UI, UX, and designWCAG 2.2[3], the Web Accessibility Introduction Guidebook from Japan's Digital Agency[15], and Nielsen Norman Group's usability heuristics[16]
SecurityOWASP ASVS and its definition of levels[2][17], OWASP Top Ten[18], and the security pillar of the Google Cloud Well-Architected Framework[19]
Automated testingThe testing chapter of Software Engineering at Google[20], DORA's Test automation[21], and Code Coverage Best Practices[4]
CI/CDDORA's Continuous integration[22] and Deployment automation[23], the Secure use reference for GitHub Actions[24], and the OpenSSF Scorecard checks[10]
Cloud platform and operationsThe Google Cloud Well-Architected Framework[25] with its operational excellence pillar[26] and its security pillar[19], the chapters on service level objectives and on monitoring in Site Reliability Engineering[27][28], and DORA's Monitoring and observability[29]
DocumentationDiátaxis[30], the C4 model[31], arc42[32], Architecture decision records[33], and DORA's Documentation quality[34]
Development processDORA's Working in small batches[35], Trunk-based development[36], Version control[37], and Streamlining change approval[38]
Use of generative AIThe DORA AI Capabilities Model[39] and its Clear and communicated AI stance capability[40], and Best practices for Claude Code[41] and Security in the Claude Code documentation[42]

6.2Full text of the criteria

Axes and the five-level criteria

  1. 1

    Technology choices

    Alignment with industry standards, market value, and consistency of choices and dependency management

    1. 1

      Insufficient The reasons for the main technology choices cannot be explained, and unmaintained or mutually inconsistent technologies sit at the core.

    2. 2

      Partial Common industry technologies are used, but consistency is lacking, such as outdated versions or duplicated technologies for the same role.

    3. 3

      Standard Widely adopted technologies are used consistently at supported versions, dependency versions are pinned, and the reasons for the choices are documented.(awarded level)

    4. 4

      Advanced The choice of runtimes and data stores can be explained against the requirements, and dependency updates and vulnerability fixes run continuously as a mechanism.

    5. 5

      Leading The reasoning and the alternatives considered are recorded, and the technologies are coupled coherently by design, for example by sharing types and schemas across layers.

  2. 2

    Architecture and maintainability

    Structural consistency, ease of change, readability, attention to performance hot spots, and mechanisms that keep conventions enforced

    1. 1

      Insufficient Layers and responsibilities are not defined, so the impact of a change cannot be traced.

    2. 2

      Partial Layers exist, but the conventions rely on documents and reviews, and deviations remain.

    3. 3

      Standard Layers and responsibilities are defined, naming and placement conventions are documented, and static analysis and type checking enforce them in CI.

    4. 4

      Advanced Dependency directions and boundary violations are checked mechanically, external contracts (APIs and events) are generated from schemas to stay consistent with the implementation, and performance hot spots (query counts, offloading heavy work asynchronously, caching, and so on) are addressed by design.

    5. 5

      Leading The design conventions themselves run as automated tests, and cross-cutting concerns such as isolating side effects and guaranteeing consistency are enforced through shared types and mechanisms.(awarded level)

  3. 3

    Data design

    Schema integrity and normalization, access control, and the design of search, history, partitioning, and migrations

    1. 1

      Insufficient The schema lacks integrity constraints (primary keys, foreign keys, NOT NULL), and changes are made by hand.

    2. 2

      Partial Constraints exist, but the schema change history is incomplete, or indexes and search are designed after the fact.

    3. 3

      Standard A normalized relational schema is managed through a schema definition (an ORM or equivalent) and version-controlled migrations, and constraints and indexes match the requirements.

    4. 4

      Advanced Row-level access control or an equivalent mechanism lives in the database, and the design addresses audit and history requirements (append-only, partitioning) and search requirements (full-text search, indexes).

    5. 5

      Leading Access control rules are verified by automated tests, types and enumerations are derived from the schema definition to prevent drift, and the data flows are documented as diagrams.(awarded level)

  4. 4

    Features

    Breadth and depth of features, reflection of the business domain, and completeness of exceptional cases and administration

    1. 1

      Insufficient Only the core features exist, and the handling of exceptional cases (failures, missing permissions, limits) is undefined.

    2. 2

      Partial The main features are in place, but gaps remain in administrative features and in exceptional cases (permissions, failures, limits).

    3. 3

      Standard The main business flows are implemented end to end, with exceptional cases such as permissions, failures, and limits, and with administrative features.

    4. 4

      Advanced Domain-specific requirements (external sharing, expiry, scanning, retention, audit, and so on) are implemented as features, with user help and notifications matching them.

    5. 5

      Leading Features are built on a consistent conceptual model (permissions, lifecycle, events), and operator-facing features (monitoring, anomaly detection, settings) are built into the product.(awarded level)

  5. 5

    UI, UX, and design

    Consistency through a design system, coherent interaction, accessibility, and responsiveness (perceived speed)

    1. 1

      Insufficient Appearance and interaction differ from screen to screen, with no provision for keyboard use or assistive technologies.

    2. 2

      Partial Shared components exist, but rules for color, spacing, and wording are undefined, and accessibility is limited to some screens.

    3. 3

      Standard The UI is unified through design tokens and shared components, the main screens are implemented in line with the WCAG 2.2 Level A success criteria (text alternatives, keyboard operation, labels, error identification, and so on), and status display and recovery from mistakes are designed.

    4. 4

      Advanced Implementation and checks targeting WCAG 2.2 Level AA (contrast, visible focus, status announcements) are part of the process, and the loading, empty, and error states are designed, with attention to perceived speed.(awarded level)

    5. 5

      Leading A record of checking the Level AA success criteria is published, the design system is documented and matches the implementation, and accessibility rules are enforced by automated tests and conventions.

  6. 6

    Security

    Authentication and authorization, defense in depth, handling of secrets, and preparedness for threats

    1. 1

      Insufficient Authentication exists, but authorization is enforced only in the UI, and secret management and input validation are insufficient.

    2. 2

      Partial Authorization is checked on the server, but input validation, security headers, and dedicated secret management are only partial.

    3. 3

      Standard The implementation follows the OWASP ASVS Level 1 requirements: authorization is enforced on the server, and input validation, security headers, and dedicated secret management are in place.

    4. 4

      Advanced Practices toward the main chapters of Level 2 are in place: multi-factor authentication, fine-grained session and permission control, database-side access control, audit logging, and dependency vulnerability handling.(awarded level)

    5. 5

      Leading Level 2 requirements have been verified and recorded, a threat model is documented, dedicated defenses match the threats (upload scanning and quarantine, signed URLs, keyless authentication, and so on), and security verification (dedicated tests, periodic self-checks) is automated.

  7. 7

    Automated testing

    Layers and coverage of tests, production-like verification, and execution and maintenance in CI

    1. 1

      Insufficient There are almost no automated tests, and verification relies on manual checks.

    2. 2

      Partial Unit tests exist, but there is no integration layer, or the tests do not run in CI.

    3. 3

      Standard Unit and integration tests cover the main features and run in CI on every change.(awarded level)

    4. 4

      Advanced End-to-end tests and integration tests against production-like dependencies (a real database, a storage stand-in) exist, each layer has a distinct purpose, and a failure blocks the merge.

    5. 5

      Leading Dedicated lanes exist for purposes such as performance, access control, and conventions, the policy of not relying on mocks is documented, and run time and flakiness are managed.

  8. 8

    CI/CD

    Scope of automation, safety and reproducibility of deployment, and handling of keys and permissions

    1. 1

      Insufficient Build and deployment are manual, and the procedure depends on individuals.

    2. 2

      Partial Checks run in CI, but deployment is manual or does not go through the same automated path as the checks.

    3. 3

      Standard Checks and builds run automatically on every change, the pipeline definitions are under version control, and production deployments go through the same automated path.(awarded level)

    4. 4

      Advanced CI results are a condition for merging and deployment, services deploy independently, jobs run according to the changed scope, authentication is keyless (OIDC), and dependencies and actions are pinned and updated automatically.

    5. 5

      Leading Post-deployment verification (checking configuration and the origin of secrets, reconciling live resources with declarations) is automated, a rollback procedure is defined, and the pipeline definitions are organized for reuse.

  9. 9

    Cloud platform and operations

    Service selection and loose coupling, scaling with load, observability, configuration management and drift detection, and the balance of operational load and cost

    1. 1

      Insufficient The system is deployed by hand to a single server, with no logging or monitoring.

    2. 2

      Partial Managed services are used, but the configuration is not recorded, and monitoring is limited to platform defaults.

    3. 3

      Standard Managed compute, storage, and messaging are used according to purpose, the configuration is recorded reproducibly (IaC or equivalent declarations), and structured logs and basic monitoring and alerts are in place.

    4. 4

      Advanced Asynchronous processing is loosely coupled (queues, events, retries with failure isolation), the compute scales with load by configuration, service accounts follow least privilege, secrets are managed, and environments are separated.

    5. 5

      Leading Drift between declarations and live resources is detected mechanically, application-level alerts and retention and deletion operations are automated, and service level objectives, incident procedures, and cost and operational trade-offs are documented.(awarded level)

  10. 10

    Documentation

    Coverage and freshness of design, operations, and user documentation, explanation through diagrams, and consistency with the implementation

    1. 1

      Insufficient Documentation amounts to a README, with no design or operations documents.

    2. 2

      Partial Design documents exist, but they have drifted from the implementation, or user-facing and operations documents are missing.

    3. 3

      Standard Setup, run, test, and deployment can be reproduced from the procedures, and the requirements, design, and operations documents and user-facing explanations are updated as the implementation changes.

    4. 4

      Advanced Architecture and ER diagrams explain the whole, user help is built into the product, and there are conventions for where and how documents are written.

    5. 5

      Leading Design decisions are recorded (what was chosen and what was not), documents trace to the implementation and tests, and mechanisms check the documents' freshness and consistency.(awarded level)

  11. 11

    Development process

    Coverage of phases from requirements to deployment, records of artifacts and decisions, and verification mechanisms

    1. 1

      Insufficient There are no distinct phases, and no records of requirements or design remain.

    2. 2

      Partial Phases are distinct, but specifications and plans remain scattered notes, and actuals are not recorded.

    3. 3

      Standard Requirements, design, implementation, testing, and release phases exist; specifications and plans are documented; changes are merged in small units after automated verification; and issues and work hours are recorded.

    4. 4

      Advanced Each unit of work leaves specification, plan, implementation, and review artifacts; the reasons for decisions are traceable; and completion criteria are confirmed by verification.(awarded level)

    5. 5

      Leading The process itself is organized into reusable procedures and checklists, and improvements from retrospectives, including comparison of estimates with actuals, are recorded.

  12. 12

    Use of generative AI

    Systematic integration of generative AI into development, operations that ensure quality through people and mechanisms, and transparency about its use

    1. 1

      Insufficient Generative AI is not used, or its use is unrecorded and outputs are adopted as is.

    2. 2

      Partial Use is limited to code completion and questions, and verification of the output is left to individual discretion.

    3. 3

      Standard A policy for generative AI use (the scope delegated and the information not shared) is written down, people review the output, and quality is checked by automated tests and static analysis.

    4. 4

      Advanced Project-specific instructions, conventions, and skills are version-controlled and given to the agents, and roles are separated by phase from specification through implementation and review.(awarded level)

    5. 5

      Leading The operation is systematized, including review by separate instances, iterative verification, and mechanical enforcement of conventions, and the methods and limits of the use are disclosed to readers.

6.3Work hours

Work hours per phase during the development period (the total equals the "work hours" figure)

PhaseItemHours
RequirementsRequirements analysis3.0
Requirements definition (including documents)8.5
Research on similar services0.5
Understanding and specification review39.5
Specification design (including documents)58.0
Subtotal109.5
FoundationTechnology selection1.0
Technical research and validation6.5
Foundation design22.0
Foundation development28.5
Environment setup (development)25.5
Subtotal83.5
DatabaseDatabase design4.0
Database implementation10.5
Subtotal14.5
BackendBackend design12.5
Backend development161.5
Subtotal174.0
FrontendVisual design3.0
Frontend design20.0
Frontend development136.0
Subtotal159.0
Cloud environmentEnvironment setup (cloud)46.5
TestingTest design and implementation12.5
Smoke testing36.0
Bug investigation and fixes15.0
Subtotal63.5
Deployment and operationsDeployment8.0
DocumentationWriting manuals9.0
Technical documentation30.5
Documents for users17.0
Organizing documents6.5
Subtotal63.0
ManagementMeetings5.5
Total727.0

6.4Lines of code

Product to test ratio

  • Product 58%
  • Test 42%

Lines of code by language (product, test, total)

LanguageProductTestTotal
TypeScript300,478343,213643,691
TSX153,9410153,941
Go11,03911,20122,240
SQL5,68805,688
YAML3,864133,877
Prisma2,36102,361
CSS1,36401,364
JSON1,12701,127
JavaScript793110903
Other7870787
Total481,442354,537835,9795,855 files

Lines of code by workspace (product, test, total)

WorkspaceProductTestTotal
apps/api150,331218,507368,838
apps/web257,35396,962354,315
packages/shared29,08418,46747,551
apps/sync7,8648,74416,608
packages/database11,01518311,198
packages/help-content4,8273,0627,889
packages/email5,3421,8927,234
apps/scanner3,2432,3515,594
packages/auth4,2121,1385,350
.github3,19903,199
packages/help-search1,2771,7573,034
apps/thumbnailer1,2749602,234
packages/events9972841,281
Other1,4242301,654
Total481,442354,537835,9795,855 files

6.5How the figures are counted

These are the names, values, and counting methods of the figures used in the text, the figure cards, and the evidence.

Screens 68
Number of page.tsx files in the web app's App Router tree, excluding the developer preview screens
API endpoints 375
Number of paths in the OpenAPI definition (402 operations by HTTP method)
Database tables 61
Number of model declarations in the Prisma schema
Background jobs 30
Number of registered scheduled and on-demand jobs (27 scheduled, 3 on-demand; the two standalone Go services are not included)
Test files 1,582
Number of automated test files (1,491 TypeScript unit and integration tests, 58 E2E specs, and 33 Go tests)
Lines of code 835,979
Lines in program, test, and configuration files (TypeScript, Go, SQL, and others), excluding documents, generated files, and blank lines, and including comments (481,442 lines of product code and 354,537 lines of test code)
Work hours 727 hours
Sum of the work hours recorded per phase during the development period (27 items including requirements analysis, design, development, testing, and documentation)
Development period 4 months
Months from the start of requirements analysis to the completion of implementation, including testing and deployment (mid-May to mid-September 2026, rounded down)
Applications 5
Number of top-level directories under apps/ (web, api, and thumbnailer in Node.js; sync and scanner in Go)
Shared packages 12
Number of top-level directories under packages/ (11 pnpm packages and 1 Go module)
Migrations 79
Number of database schema migrations (migration directories, from the initial one through the subject date; applied migrations are never rewritten)
Implementation stages 10
Number of stages into which the implementation was divided (environment setup, authentication, the file-sharing foundation, extended file features, reliability, retention, administration screens and audit, public pages, in-app help, and release preparation). Each stage holds smaller units of work that keep plans and work logs, and most also keep specifications and review records
RLS policies 103
Number of policies declared for row-level security in the database (CREATE POLICY statements in the definition file, excluding comments). Row-level security is enabled on 53 tables, 48 of which have policies; the 8 tables that the authentication platform reads and writes without a user context are excluded
Notification types 57
Number of notification types sent to users and administrators (the number of template identifiers): 46 whose text administrators can edit plus 11 fixed in code for authentication, including 5 delivered only inside the app. Variants of the text by theme or recipient are not counted
Convention tests 78
Number of automated test files that mechanically check design conventions (those in the dedicated convention-test directories: 72 for the web app and 6 for the API; similar tests outside those directories, in shared packages or in each app's unit-test locations, are not counted)
Help articles 95
Number of user-facing help articles built into the app (MDX; sample articles used only for checks are not counted). CI checks that the articles cover every entry of the feature catalog and the screen catalog
Design and implementation documents 343
Number of Markdown documents under the repository's docs directory (six sections: baseline concept 18, design candidates 2, feature catalog 37, page catalog 57, design rules 16, and implementation plans and records 213; help articles and development process documents are not counted)
Agent skills 13
Number of skills for generative AI agents managed in the repository (6 for domain knowledge, 6 for phase procedures, and 1 for document design; the 5 role-specific agent definitions are counted separately)

6.6Sources

  1. [1]
  2. [2]

    OWASP Application Security Verification Standard (ASVS)(opens in a new tab) OWASP Foundation

    https://owasp.org/projects/asvs accessed 2026-09-26

  3. [3]

    Web Content Accessibility Guidelines (WCAG) 2.2(opens in a new tab) W3C

    https://www.w3.org/TR/WCAG22/ accessed 2026-09-26

  4. [4]

    Code Coverage Best Practices(opens in a new tab) Google Testing Blog

    https://testing.googleblog.com/2020/08/code-coverage-best-practices.html accessed 2026-09-26

  5. [5]

    Node.js Releases(opens in a new tab) Node.js

    https://nodejs.org/en/about/previous-releases accessed 2026-09-26

  6. [6]

    Next.js Support Policy(opens in a new tab) Vercel

    https://nextjs.org/support-policy accessed 2026-09-26

  7. [7]

    Release History (Release Policy)(opens in a new tab) The Go Project

    https://go.dev/doc/devel/release accessed 2026-09-26

  8. [8]

    Versioning Policy(opens in a new tab) PostgreSQL Global Development Group

    https://www.postgresql.org/support/versioning/ accessed 2026-09-26

  9. [9]

    The Twelve-Factor App(opens in a new tab) Adam Wiggins

    https://12factor.net/ accessed 2026-09-26

  10. [10]

    Check Documentation (Scorecard checks)(opens in a new tab) OpenSSF

    https://github.com/ossf/scorecard/blob/main/docs/checks.md accessed 2026-09-26

  11. [11]

    Capabilities: Code maintainability(opens in a new tab) DORA

    https://dora.dev/capabilities/code-maintainability/ accessed 2026-09-26

  12. [12]

    Capabilities: Loosely coupled teams(opens in a new tab) DORA

    https://dora.dev/capabilities/loosely-coupled-teams/ accessed 2026-09-26

  13. [13]

    5.5. Constraints (PostgreSQL 18 Documentation)(opens in a new tab) PostgreSQL Global Development Group

    https://www.postgresql.org/docs/current/ddl-constraints.html accessed 2026-09-26

  14. [14]

    Capabilities: Database change management(opens in a new tab) DORA

    https://dora.dev/capabilities/database-change-management/ accessed 2026-09-26

  15. [15]

    ウェブアクセシビリティ導入ガイドブック(opens in a new tab) デジタル庁 (in Japanese)

    https://www.digital.go.jp/resources/introduction-to-web-accessibility-guidebook accessed 2026-09-26

  16. [16]

    10 Usability Heuristics for User Interface Design(opens in a new tab) Nielsen Norman Group

    https://www.nngroup.com/articles/ten-usability-heuristics/ accessed 2026-09-26

  17. [17]

    What is the ASVS? (ASVS 5.0.0)(opens in a new tab) OWASP Foundation

    https://github.com/OWASP/ASVS/blob/master/5.0/en/0x03-What-is-the-ASVS.md accessed 2026-09-26

  18. [18]

    OWASP Top 10:2025(opens in a new tab) OWASP Foundation

    https://top10.owasp.org/2025/ accessed 2026-09-26

  19. [19]

    Well-Architected Framework: Security, privacy, and compliance pillar(opens in a new tab) Google Cloud

    https://docs.cloud.google.com/architecture/framework/security accessed 2026-09-26

  20. [20]

    Software Engineering at Google, Chapter 11: Testing Overview(opens in a new tab) Google

    https://abseil.io/resources/swe-book/html/ch11.html accessed 2026-09-26

  21. [21]

    Capabilities: Test automation(opens in a new tab) DORA

    https://dora.dev/capabilities/test-automation/ accessed 2026-09-26

  22. [22]

    Capabilities: Continuous integration(opens in a new tab) DORA

    https://dora.dev/capabilities/continuous-integration/ accessed 2026-09-26

  23. [23]

    Capabilities: Deployment automation(opens in a new tab) DORA

    https://dora.dev/capabilities/deployment-automation/ accessed 2026-09-26

  24. [24]

    Secure use reference (GitHub Actions)(opens in a new tab) GitHub

    https://docs.github.com/en/actions/reference/security/secure-use accessed 2026-09-26

  25. [25]

    Google Cloud Well-Architected Framework(opens in a new tab) Google Cloud

    https://docs.cloud.google.com/architecture/framework accessed 2026-09-26

  26. [26]

    Well-Architected Framework: Operational excellence pillar(opens in a new tab) Google Cloud

    https://docs.cloud.google.com/architecture/framework/operational-excellence accessed 2026-09-26

  27. [27]

    Site Reliability Engineering, Chapter 4 - Service Level Objectives(opens in a new tab) Google

    https://sre.google/sre-book/service-level-objectives/ accessed 2026-09-26

  28. [28]

    Site Reliability Engineering, Chapter 6 - Monitoring Distributed Systems(opens in a new tab) Google

    https://sre.google/sre-book/monitoring-distributed-systems/ accessed 2026-09-26

  29. [29]

    Capabilities: Monitoring and observability(opens in a new tab) DORA

    https://dora.dev/capabilities/monitoring-and-observability/ accessed 2026-09-26

  30. [30]

    Diátaxis(opens in a new tab) Daniele Procida

    https://diataxis.fr/ accessed 2026-09-26

  31. [31]

    C4 model(opens in a new tab) Simon Brown

    https://c4model.com/ accessed 2026-09-26

  32. [32]

    arc42 Template Overview(opens in a new tab) arc42

    https://arc42.org/overview accessed 2026-09-26

  33. [33]

    Architecture decision records overview(opens in a new tab) Google Cloud

    https://docs.cloud.google.com/architecture/architecture-decision-records accessed 2026-09-26

  34. [34]

    Capabilities: Documentation quality(opens in a new tab) DORA

    https://dora.dev/capabilities/documentation-quality/ accessed 2026-09-26

  35. [35]

    Capabilities: Working in small batches(opens in a new tab) DORA

    https://dora.dev/capabilities/working-in-small-batches/ accessed 2026-09-26

  36. [36]

    Capabilities: Trunk-based development(opens in a new tab) DORA

    https://dora.dev/capabilities/trunk-based-development/ accessed 2026-09-26

  37. [37]

    Capabilities: Version control(opens in a new tab) DORA

    https://dora.dev/capabilities/version-control/ accessed 2026-09-26

  38. [38]

    Capabilities: Streamlining change approval(opens in a new tab) DORA

    https://dora.dev/capabilities/streamlining-change-approval/ accessed 2026-09-26

  39. [39]

    DORA AI Capabilities Model report(opens in a new tab) DORA

    https://dora.dev/ai/capabilities-model/report/ accessed 2026-09-26

  40. [40]

    Capabilities: Clear and communicated AI stance(opens in a new tab) DORA

    https://dora.dev/capabilities/clear-and-communicated-ai-stance/ accessed 2026-09-26

  41. [41]

    Best practices for Claude Code(opens in a new tab) Anthropic

    https://code.claude.com/docs/en/best-practices accessed 2026-09-26

  42. [42]

    Security (Claude Code Docs)(opens in a new tab) Anthropic

    https://code.claude.com/docs/en/security accessed 2026-09-26