System engineering, made easy.
Requirements, test cases, campaigns, reviews and traceability in a desktop tool that non-specialists can use, without giving up the rigor of system engineering. Plain-language sentences rather than a modeling formalism, and git as the source of truth.
# requirements/SYS-0042.yaml id: SYS-0042 type: requirement version: 3 status: approved title: Battery undervoltage cut-off text: > When the battery voltage drops below {vbat_min}, the motor controller shall stop the motor within 50 ms. links: - verifiedBy: TC-0117 - derivesFrom: STK-0008
Every requirement is a readable file you can compare in a diff.
Parameters such as {vbat_min} come from a shared base.
The rigor of an ALM tool, with no server and no proprietary database
Polenta fits where you would expect Polarion or DOORS, with the tools your team already knows.
Git is the source of truth
Branches, merges, tags and history come from git, not from a vendor database. The only "server" is a git remote: GitHub, GitLab or self-hosted.
Built for AI
Plain-text data, a built-in MCP server and a generated AGENTS.md: the agent helps write,
imports in bulk and reviews consistency.
Traceability you can check
Coverage matrix, missing-link detection, impact analysis and a "needs revalidation" flag when a linked item changes after approval.
Reusable components
Share a specification (a BMS, a motor controller…) across several products as a git repository, pinned to a baseline and read-only in the parent project.
Your vocabulary
Object types, fields (rich text, enums, dates, draw.io diagrams…) and process configurable per project. EARS syntax validation.
For the whole team
A UI designed for non-specialists, an Excel-like grid view, Excel and CSV import/export, English and French interface.
From need to proof
| Area | What you get |
|---|---|
| Requirements | Configurable types, stable IDs (SYS-0042), integer versions with diffs, EARS validation |
| Tests | Versioned test cases with steps, pre- and postconditions; campaigns and runs; JUnit XML / JSON result import |
| Traceability | Requirements × tests matrix, orphan and uncovered items, impact analysis, test plan generation |
| Collaboration | Every change on its own branch, reviews with comments per object and per field, configurable approval quorum |
| Baselines | Immutable snapshots (git tags + coverage stats) you can compare |
| Dashboards | SQL-style queries, bar, pie, line and KPI widgets; coverage, progress and maturity dashboards ready-made |
| Export | PDF audit reports, Excel matrices, Word, JUnit XML |
The agent proposes, you publish
The app ships an MCP server that runs on the same service layer as the UI: it generates IDs, resolves types and validates required fields the same way. Claude Code, Cursor or Codex get access to the whole data model.
- The agent writes, imports or fixes items in the working tree.
- Bulk imports run as a dry run unless you explicitly turn that off.
- The server never commits: you review and publish from the app.
# Start the MCP server on a project pnpm --filter @polenta/desktop run mcp-server \ -- --repo /path/to/my-product # Example requests to the agent "Import the requirements from the customer spec and propose links to SYS-*" "List approved requirements with no test and write the missing test cases" "Check that the BMS component requirements follow the EARS syntax"
Download Polenta
Windows installer. Polenta is under active development: expect changes between versions. Source code under AGPL-3.0 on GitHub.