Fork me on GitHub

Project Assembly

The Assembly act helps turn a plain-language application request into a functional initial project. You describe what you want to build and any important preferences, such as the programming language, framework, database, or platform. The act uses AI, semantic library search, and structured Bindex metadata to select suitable components, generate the project files, and check the result by building it.

Assembly is a starting point for development, not a substitute for review. Always check the generated code, dependencies, configuration, licenses, security, and behavior before using the project in production.

What the Assembly Act Does

Assembly combines a Large Language Model (LLM) with a curated library ecosystem. Its process is designed to reuse relevant libraries rather than recreate their functionality from scratch:

Assembly Act workflow

  1. Reads your request — You provide a natural-language description of the application, its purpose, and its main features. Include technical requirements when you know them. For example: “Create a REST API application for managing a user login using Spring Boot and Commercetools.”
  2. Finds candidate libraries — The act sends your request to pick_libraries. Semantic search ranks libraries by their intended use, so results can match the meaning of your request rather than only its exact keywords.
  3. Reviews library metadata — For each promising candidate, the act uses get_bindex to retrieve its Bindex JSON description. This metadata can include features, integration points, examples, authorship, and licensing information.
  4. Plans and generates the project — The LLM uses your request and the selected Bindex information to create a suitable directory structure, build and dependency files (such as pom.xml, build.gradle, or package.json), source-code templates, entry points, API endpoints, and integration examples.
  5. Builds and corrects the project — The act cleans and builds the generated project, fixes errors it encounters, and aims to leave a functional implementation.
  6. Documents the result — The generated project includes a detailed README.md explaining the project, its configuration, and how to use it. You can then adapt the files to your own standards and requirements.

If the request does not contain information needed to continue, Assembly can ask you for that information. The default project structure is Clean Architecture, unless you specify a different structure.

When to Use This Act

Use Assembly when you want to:

  • Create a new project quickly without manually preparing boilerplate, build files, dependencies, and an initial directory structure.
  • Prototype an application and receive a buildable implementation to review and extend.
  • Reuse existing libraries that match your requirements instead of writing common functionality from scratch.
  • Explore integrations by having the assistant identify relevant components and show how they fit together.

Assembly is most effective when you provide a clear goal and enough detail for library selection. It is not the right choice when you need a fully production-ready system without engineering review, or when strict requirements must be decided before any generated code is considered.

How Library Selection Works

Each library in the ecosystem can have a bindex.json descriptor. The descriptor is created from project artifacts such as build files and source code, and records useful information about the library, including its capabilities, integration points, examples, authorship, and license. Bindex files are indexed with semantic embeddings in a vector database. This allows Assembly to find libraries by intent and then use their documented integration information when generating the project.

The act also uses the Bindex schema to interpret this structured information consistently. The resulting project may include configuration files, initial implementation code, and customization guidance for the selected libraries. Developers remain responsible for verifying that the choices and generated implementation satisfy their functional, security, quality, and licensing requirements.

Tips for Better Results

  • State the application's purpose and the most important features.
  • Name the preferred language, framework, database, platform, or deployment environment when those choices matter.
  • Describe required integrations and constraints, rather than requesting only a generic application.
  • Review the generated source code, dependencies, configuration, build output, and README.md before continuing development or deploying the project.

Reference

For additional information about AI Assembly, including its library-selection and project- generation approach, see the AI Assembly documentation.