Yavaren™ user guideVersion 1.0.0Printable guide

Yavaren™ user guide

Version 1.0.0

Instructions for using the Yavaren software, version 1.0.0: connecting your work tracker and repositories, handing over requirements and stories, approving plans, reviewing the draft pull requests that come back, deciding what is waiting for you (in the console or in the mobile app), asking for services and support, keeping your software up to date, and administering your organisation and installation.

This guide ships with the software: it is in the installation's image and in the installer bundle, and the console serves it at /guide, also on an installation that has no connection to the internet. Read it here, print it from the printable guide.

Yavaren is a trademark of WeCan LLC.

Contents

  1. Start here
  2. Connect and set up
  3. Requirements and plans
  4. Reviews and quality
    • Reviewing draft pull requests
      What comes back for each story, and what to check before you merge.
    • Code review: feedback in your pull requests
      Let Yavaren review pull requests against your active rules and comment in the pull request; you choose which, and how.
    • Tests and automation: code, unit tests and automation tests in every story
      Choose your project's unit-test and test-automation frameworks, or let Yavaren follow what your repository already uses. Every story comes with tests that prove its acceptance criteria.
    • Quality Intelligence — test automation from your source code
      Generate a complete, runnable test automation project from your application's repository, even with no tests today; run it against your test environment, read why tests fail, and get locator repairs as draft pull requests.
    • Unit tests for your code
      Yavaren writes unit tests for your own Python and TypeScript/JavaScript functions, runs them, shows they catch deliberate defects, and proposes only the new test files as a draft pull request.
    • Automation repositories — where your generated tests live, and their pipeline
      Keep the tests Quality Intelligence generates in your application's repository, in a repository you already have, or in a new private repository Yavaren creates in your organisation; switch on a complete pipeline for them in your own CI and run it for an exact version of your application.
    • When a quality run fails — what went wrong and what to do
      Every failed quality run says what failed, the likely cause and the evidence for it, the safe next step and who can take it; plus what changed in your application, pipeline template versions, pausing, and usage against your plan.
    • Parallel work
      How Yavaren keeps stories that change the same files from conflicting, and what it tells you about the order to merge.
    • Release notes for engineers and for everyone else
      Capture a release from your repositories, read its technical and business notes written from the same facts, have a reviewer approve them, publish them, and let people follow the channels they care about.
    • Is this release ready, and where is it?
      Deliver shows each release candidate's exact revisions and builds, the Quality results for those revisions, readiness gates that never pass on missing evidence, the approvals your policy asks for, and where the release was deployed and who can use it.
    • Keep your tools in step with Yavaren
      Synchronise Yavaren Boards, Requirements and Knowledge with Jira, Azure Boards, GitHub Issues, GitLab or Confluence — each field owned by one side, a preview before any write, every conflict decided by a person.
    • Corrections of delivered work
      Give feedback on something Yavaren delivered, review how it will be corrected, and accept or reject the correction.
    • Guidance for your codebase
      See what Yavaren understood of your rules for each part of your work, acknowledge it, and adopt Yavaren's recommended baselines.
  5. Waiting for you and the mobile app
    • Waiting for you
      Everything Yavaren needs a person to decide, in one list; how you are told, reminded, and how to choose.
    • The Yavaren mobile app
      Pair your phone, see what waits for you, approve plans and criteria, read a pull request's AI review, get notified.
  6. New products
  7. Services, support and updates
    • Services and engagements
      What Yavaren's people offer besides delivery — delivery project management and AI delivery consulting — and how to ask for an engagement.
    • Support
      Get help with a problem in Yavaren or in software Yavaren delivered: open a ticket, follow the thread, and turn a bug into a fix.
    • Software updates
      Have Yavaren update a repository's dependencies, runtime or framework, or fix security advisories, as draft pull requests.
  8. Administration
    • People, sign-in and API keys
      Who can do what in your organisation, how people sign in, and how to use API keys.
    • Give leaders Leadership Intelligence only
      Put leaders in the ready-made Leadership group, or invite them straight into it, so they see Leadership Intelligence and nothing else.
    • Your plan, limits and billing
      Your organisation's plan, rate and limits, and where to find statements and invoices.
    • Plans, AI usage and your data
      Your plan and what it includes, asking for a plan change, seeing what AI work will cost before it starts, the sample workspace, and exporting your organisation's data.
    • Free trials and free credit
      What a free trial or free credit includes and what happens when it ends.
    • Where your work runs
      Where the engineers' work runs, what leaves your organisation, and the learning data you allow.
    • Cloud, on-prem and hybrid compared
      The three ways to run Yavaren side by side: who runs what, where your data lives, what leaves your network, and how a new product is built and deployed in each.
    • Install Yavaren on your own servers, by clicks
      Plan an on-prem installation in Your setup, run one command on your server, and a browser installer finishes every step. Air-gapped networks and upgrades work the same way.
    • Upgrades of your on-prem installation
      How Yavaren upgrades your on-prem installation, what you approve and when, your maintenance window, following an upgrade stage by stage, and upgrading an air-gapped installation.
    • Yavaren support and your on-prem installation
      What Yavaren support can see of an on-prem installation, what it can do and only when you allow it, how to approve or end a support session, and the kill switch.
    • Release verification and your licence binding
      How an on-prem installation checks that it runs the files Yavaren released, and how its licence is bound to it. What happens after a move or a restore.
    • How Yavaren is doing
      Yavaren's daily check of its own results, what it fixed by itself, and what needs you.
    • What Yavaren has learned
      Lessons Yavaren learns from your own work and uses in your next jobs; see the evidence, switch them off, edit or revert them.
    • Giving feedback
      How to rate finished work and what happens with your feedback.
    • API reference
      Every API route your organisation can call, who may call it, and the data it takes and returns.
    • What's new
      Dated changes to what you can do, newest first.
  9. Stack conventions
    • Stack conventions
      The languages and frameworks Yavaren works in, and the conventions each one follows.
    • Android (Kotlin, Jetpack, Compose)
      Android apps in Kotlin with Jetpack Compose, ViewModels and coroutines, built with Gradle and tested on the JVM and on devices.
    • Angular
      Angular applications with standalone components, signals and OnPush change detection, tested with TestBed and component harnesses.
    • Bicep (Azure)
      Azure infrastructure in Bicep, including the subscription-scope infra/shared and infra/app deployments Yavaren generates for new applications.
    • C (CMake)
      Modern C (C11/C17) libraries, services and system software built with CMake, tested with CTest, under sanitizers and static analysis.
    • C++ (CMake)
      Modern C++ (17/20/23) libraries and applications built with CMake, tested with CTest and a unit-test framework, under sanitizers.
    • Databricks (PySpark, Delta Lake, Asset Bundles)
      Databricks code: PySpark jobs and libraries, Lakeflow (Delta Live Tables) pipelines, notebooks kept as .py or .sql source, Databricks Asset Bundles (databricks.yml), Delta Lake tables and Unity Catalog objects; tested locally with pytest and a local SparkSession.
    • dbt Core
      dbt Core projects (dbt_project.yml) on Snowflake, Databricks, BigQuery, Redshift and PostgreSQL: staging, intermediate and mart models, sources, seeds, snapshots, macros, data tests, unit tests and model contracts.
    • Django
      Django web applications and APIs (Django 4.2 LTS to 5.x/6.x), on top of the Python profile.
    • .NET (C# / ASP.NET Core)
      C# and .NET 8+ services, APIs and libraries (ASP.NET Core, EF Core), built with nullable reference types and analyzers on.
    • Elixir (and Phoenix)
      Elixir applications and libraries on OTP, including Phoenix and Ecto, tested with ExUnit.
    • Embedded firmware (C/C++, PlatformIO)
      Firmware for microcontrollers and edge devices (ESP32, STM32, nRF, RP2040 and more) in C and C++ with PlatformIO: hardware-independent logic unit-tested on the host, static analysis, and the memory, timing and safety rules of code that runs on devices.
    • Flutter (Dart)
      Flutter apps in Dart with null safety, state managed through the repository's chosen approach, tested with unit, widget and integration tests.
    • Go
      Go 1.22+ services, command-line tools and libraries, using the standard library first and tested with the testing package.
    • Java (Maven / Gradle)
      Java 17+ services and libraries built with Maven or Gradle (Spring Boot or plain Java), tested with JUnit 5.
    • Kotlin
      Kotlin on the JVM (services and libraries) with coroutines, built with Gradle Kotlin DSL and tested with JUnit 5 or kotlin.test.
    • Laravel
      Laravel 11+ applications: Eloquent, queues, Blade or Inertia front ends, validated with Form Requests and tested with Pest or PHPUnit.
    • Next.js (App Router)
      Next.js App Router applications with Server Components, Server Actions and route handlers, in TypeScript.
    • Node.js (server-side JavaScript)
      Node.js services, command-line tools and libraries in JavaScript, tested with the repository's runner (node:test, Vitest, Jest).
    • PHP
      Modern PHP 8.2+ applications and libraries with Composer, strict types and static analysis, tested with PHPUnit or Pest.
    • Playwright end-to-end tests (TypeScript)
      End-to-end and component tests with Playwright Test in TypeScript: role-based locators, web-first assertions and isolated parallel tests.
    • Playwright end-to-end tests (.NET, NUnit)
      End-to-end tests with Playwright for .NET (NUnit, MSTest or xUnit): role-based locators, auto-waiting assertions and parallel-safe tests.
    • Python
      Modern Python 3.10+ services, libraries and scripts, typed and tested with pytest.
    • Ruby on Rails
      Ruby on Rails 7/8 applications following the Rails way: Active Record, Hotwire, background jobs and built-in testing.
    • React
      React 18/19 user interfaces with function components and hooks, tested through the DOM with Testing Library.
    • ROS 2 (robotics)
      Robot software on ROS 2 (Jazzy or Humble): C++ (rclcpp) and Python (rclpy) packages built with colcon and ament, with launch files, parameters, simulation tests and the safety rules of software that moves hardware.
    • Ruby
      Ruby 3.x gems, scripts and services, styled with RuboCop or Standard and tested with RSpec or Minitest.
    • Rust
      Rust 2021/2024 crates (services, command-line tools and libraries) built with Cargo, linted with Clippy and tested with cargo test.
    • Salesforce (Apex, LWC, metadata)
      Apex classes and triggers, Lightning Web Components and source-format metadata in a Salesforce DX project.
    • Scala
      Scala 2.13 and Scala 3 services and libraries built with sbt, functional style with Cats Effect or ZIO where the repository uses them.
    • Snowflake (SQL, Snowpark, schemachange)
      Snowflake code: Snowflake SQL and versioned migrations (schemachange or Flyway), Snowpark Python (DataFrames, stored procedures, UDFs and UDTFs), tasks, streams, dynamic tables, roles and grants; Snowpark tested locally with pytest in local testing mode.
    • SQL databases (migrations, procedures, views)
      Relational database code for PostgreSQL, SQL Server (T-SQL), MySQL and Oracle: versioned schema migrations (Flyway V__ files, Liquibase changelogs, plain numbered scripts), stored procedures, functions, views and grants.
    • Swift
      Swift 5.9/6 apps and packages (SwiftUI, Swift concurrency) built with Swift Package Manager or Xcode, tested with Swift Testing or XCTest.
    • Terraform and OpenTofu
      HCL infrastructure code (Terraform 1.8+ or OpenTofu 1.8+), including the infra/ stacks Yavaren generates for new applications.
    • TypeScript
      TypeScript 5.x applications and libraries with strict compiler settings, on Node.js or in the browser.
    • Vue 3
      Vue 3 applications with the Composition API and `<script setup>`, Pinia for state, tested with Vitest and Vue Test Utils.

Start here · version 1.0.0

About this guide

What this guide covers, where you find it, and how to print it.

This is the user guide of the Yavaren™ software. It explains, step by step, how your organisation uses Yavaren: connecting your work tracker and repositories, handing over requirements and stories, approving plans and acceptance criteria, reviewing the draft pull requests that come back, deciding what is waiting for you in the console or in the mobile app, asking Yavaren for services and support, keeping your software up to date, and administering your organisation and your installation.

Where you find it

Printing it

Printable guide at the top of every page opens the whole guide as one document, one topic per page. Print it, or save it as a PDF from your browser's print dialog. Where the guide was built with a PDF tool, a ready-made PDF is linked next to it.

Which version it describes

Every page names the version of the Yavaren software it was built for, at the top and at the bottom. The guide is built from the same sources as the help centre in the console, so the two say the same things. When you upgrade your installation, the guide is upgraded with it.

A word on names

Yavaren™ is the name of the software and of the services described here. Tulaian is the name of Yavaren's AI delivery engineers. Yavaren is a trademark of WeCan LLC.

Start here · version 1.0.0

Getting started

What Yavaren does for your organisation and the order to set it up in.

Yavaren gives your organisation on-demand AI delivery engineers, called Tulaian. You connect a work tracker and your repositories, request engineers, and hand over stories. Each story comes back as a draft pull request that a person in your team reviews and merges. Yavaren never merges and never pushes to your main branch. For a new product, it deploys only by starting your own pipeline, and only after a person you named approves.

Finding your way

The bar at the top has the pages you use every day; Quality, Help and Organisation open the rest. To go straight to any page, press ⌘K (Mac) or Ctrl+K, or choose the search icon, and type part of its name. Each page has a (?) next to its title: it says what the page is for and what to do next. The bell at the top right lists your notifications, such as a pull request that waits for your review; choose one to open it.

The order to set things up in

The Getting started page (in Help) walks you through these steps in order. It shows how far you are, why each step is there, and a button that opens the exact place it is done. A new organisation's first admin starts there.

  1. Your setup: choose how Yavaren runs for you. Yavaren cloud is recommended: nothing to install, ready in minutes. If your code and tokens must stay in your own network, choose hybrid runners or on-prem instead (see Cloud, on-prem and hybrid compared): Yavaren sets it up with you, and your work can start in Yavaren cloud meanwhile. You can change your choice later.
  2. Connections: connect your work tracker and your code (see Connecting trackers and repositories). If you named them when you asked for access, the form starts with them.
  3. Tokens: paste the token of each connection once (see Tokens: set once, never shown again).
  4. Payment, where your organisation needs it.
  5. Engineers: request the engineers you need (see Requesting engineers).
  6. Project: which tracker, which repositories, which engineers (see Projects, pickup and governance). The tracker no project uses yet, and the repository that goes with it, are chosen for you.
  7. Runners: in Yavaren cloud they are ready. In your own network you install them once (see Cloud, on-prem and hybrid compared).
  8. First story: hand over a story, or turn on automatic pickup so approved stories are started for you.
  9. First review: review the draft pull request that comes back (see Reviewing draft pull requests).
  10. Your team (optional): invite the people who review pull requests and approve plans.

A step Yavaren cannot check from here, such as tokens kept in your own vault, is marked Check yourself and says how to check it.

You are not asked the same thing twice

For the admins of your organisation.

For the admins of your organisation

As an admin you can also invite people, issue API keys, see the activity log and read your statements. These are under People, billing, activity in the navigation.

Start here · version 1.0.0

Finding your way: Home and the six workspaces

Where to plan, find knowledge, build, test, deliver and review outcomes — and the one next action Home shows you.

The bar at the top has the same order on every page: Home, then the workspaces your organisation uses, then Settings and Help.

Workspace What you do there
Plan turn what you want into approved work: boards, new requests, requirements, projects
Knowledge pages, specifications and decisions, with versions and reviews
Build hand approved work to engineers; each comes back as a draft pull request
Quality analyse an application, generate and run tests, unit tests for your own code
Deliver releases, release notes, followers, evidence of what reached people
Insights how Yavaren is doing for you (a fuller leadership overview is planned)

A workspace whose module is switched off is not shown. You can use one workspace without setting up the others.

Home

Home shows your organisation, one next action and the requests waiting for you.

Settings and Help

Links you saved keep working. The Work page is now Build › Hand over work (/build), and its old address opens it.

Start here · version 1.0.0

Getting started by goal — set up only what you need

Tell Yavaren what you would like to accomplish first; it asks only for what that needs, checks each step against what really exists, shows what it would create before it does, and tells you when your first useful result has happened.

Getting started (Help › Getting started; the first page a new organisation's admin sees).

Getting started has three stages, shown at the top of the page. Each is marked done from what really exists, never from pressing a button:

  1. Choose your outcome.
  2. Set up the minimum context. One application, then only what your goals need, one step at a time.
  3. Complete your first useful action. One button to it, and it counts only when it really happened.

1. Choose what you would like to accomplish first

Goals are grouped under the workspace they start in (Plan, Knowledge, Build, Quality, Deliver, and connecting your tools). Start with one; each works on its own. Choose more any time:

If you mentioned goals when you asked for access, they are ticked for you. Nothing is saved until an admin chooses Save my goals.

A goal your plan does not include is listed under "Not part of this setup", with the reason, instead of asking you for steps.

2. Describe your application

Describe the first application now and add others later. Only the name is required. Under Add details (optional) you can also give:

"Not sure" is fine everywhere. Tick Configure repositories and environments later to skip those steps for now. Describing an application connects and creates nothing.

3. Do the steps your goals need

The current step is shown with its one button; All things your goals need lists the rest. Each step says why it is needed, what it is for, and where it is done. It is checked against what really exists:

State Meaning
Done it exists (a connection you already made is never asked for again)
To do it is missing: the button opens the place it is done
Check yourself Yavaren cannot tell from here; the step says how to check
Optional useful, not required

Planning and knowledge need nothing outside Yavaren. Test automation needs read access to the application's repository, a test environment and a capable runner; it does not need a tracker or AI keys. AI development adds a tracker (Yavaren Boards counts), engineers and an AI budget.

4. The proposed setup

Admins see what setting up the goals would create (a Yavaren Boards work space, a knowledge space), and what is done on its own page (connections, runners), with the permissions and the cost of each. Create… asks you to confirm first, and each item is created once, however often it is pressed.

5. Your first results

Each goal has a first result, marked once it really happened:

Generated code alone is not a test run.

Connect and set up · version 1.0.0

Connecting trackers and repositories

Which work trackers and repository hosts you can connect, and what each needs.

A connection tells Yavaren where your work items live and where the code is. Each connection names its tokens; you paste each token once and it is never shown again (see Tokens: set once, never shown again). Only the runner that does your work reads it, when a job runs.

Work trackers

Service What you enter Secret names in your secret store
Azure DevOps Boards org_url, project (optional: api_version, state_on_completed, state_on_needs_review, state_on_skipped, link_pull_requests) AZDO_PAT
GitHub Issues owner, name (optional: api_url, state_on_completed, state_on_needs_review, state_on_skipped, link_pull_requests) GITHUB_REPO_TOKEN
GitLab Issues project_path (optional: base_url, state_on_completed, state_on_needs_review, state_on_skipped, link_pull_requests) GITLAB_TOKEN
Jira base_url, project (optional: acceptance_field, auth_mode, state_on_completed, state_on_needs_review, state_on_skipped, link_pull_requests) JIRA_API_TOKEN (optional: JIRA_EMAIL)
Yavaren Boards (built in) (optional: space, state_on_completed, state_on_needs_review, state_on_skipped, link_pull_requests) none

Repository hosts

Service What you enter Secret names in your secret store
Azure Repos org_url, project, name (optional: api_version) AZDO_PAT
Bitbucket Cloud workspace, name BITBUCKET_TOKEN (optional: BITBUCKET_EMAIL)
Bitbucket Server / Data Center base_url, project_key, name BITBUCKET_TOKEN
GitHub owner, name (optional: api_url, host) GITHUB_REPO_TOKEN
GitLab project_path (optional: base_url) GITLAB_TOKEN

Changing a connection

Choose Edit on a connection to correct a setting or a secret name, or to rename it. When a connection lacks something it needs, it says Needs: … and its button reads Fix. The Getting started page sends you there too. The same checks as adding it apply, and its kind stays. To connect something of another kind, add a new connection. Stories already started keep what they were given; the next ones use the change.

Good practice

Getting a token right

Next to each token, How to get this token says what it is for, where to create it, the permissions it needs, and which other connections use the same token (it then needs their permissions too). The box warns before saving when what you pasted has "Bearer" in front, a space, quotation marks or an address in it, or is a classic GitHub token (ghp_…) for GitHub Copilot, which needs a fine-grained token with the Copilot Requests permission. After saving, choose Test connection.

Changing or removing a connection

Edit (or Fix, when something is missing) opens the connection's form and takes you straight to it, with the cursor in its first field. Remove takes a connection away after you confirm. A connection that a project or an engineer still uses is not removed: the page names the project (change its connection under Projects › Edit, or end the project) or says how many engineers use it as their code agent licence (release them first). Removing a connection does not delete its tokens, which another connection may share; remove those under Organisation › Secrets.

Connect and set up · version 1.0.0

Tokens: set once, never shown again

Paste a connection's token once; where Yavaren keeps it, or how to use your own vault; Test connection.

Each connection needs a token (an API token, a personal access token, a licence key). You paste it once. It is saved for your organisation only and never shown again, not even to you: the page shows only its name, whether it is set, who set it and when.

Set a token

For the admins of your organisation.

  1. Open Connections and choose Tokens next to the connection (or paste the tokens in Add a connection).
  2. Each token has a name, for example org-13/azdo-pat. Keep the name shown.
  3. Paste the token in Set token and choose Save token. You see Saved — not shown again.
  4. Choose Test connection. Each token shows Set or Not set.

To change a token, paste the new one in Replace token. To stop using it, choose Remove; jobs that need it stop until it is set again.

Only admins of your organisation can set, replace or remove tokens.

Where tokens are kept

Managed by Yavaren (the default): in a secret store, under your organisation's own name prefix. Yavaren's runners read a token only for a job of your organisation, and only when the job runs.

Your own vault: your organisation keeps its tokens in its own AWS Secrets Manager, Azure Key Vault, Google Secret Manager or HashiCorp Vault. Choose it in Organisation settings › Secrets, give the vault's address, and give Yavaren read access to your organisation's names only. Then store each token in your vault under the name the Connections page shows. Yavaren keeps only the address and the names. The Secrets page of the documentation has the exact access policies.

On your own installation, tokens you paste are written to the secret store your installation is configured with. If your installation's store cannot be written from the console, each token shows the exact name and a command to create it there yourself (your operator may need to run it). Then choose Check or Test connection: the chip shows Found, Missing or Not checked.

When a token is missing

The job stops before it contacts your tracker or repository, and Recent work says which token and where to set it, for example: Token 'azdo-pat' is not set. Set it in Connections › Northmarq board. Choose Fix in Connections, set it, then choose Requeue.

Good practice

Connect and set up · version 1.0.0

Confluence pages in your stories

Connect Confluence Cloud so Yavaren reads the Confluence pages your work items link to, with an account you choose.

When a story links to a Confluence page, Yavaren can read that page before it plans the work, like any linked document. Without a Confluence connection, a private Confluence page cannot be read.

Connect Confluence Cloud

For the admins of your organisation.

  1. Choose the Atlassian account Yavaren reads as. Yavaren reads only what that account can see, so give it view access to the spaces your work items link to, and nothing more.
  2. Signed in as that account, open id.atlassian.com (your Atlassian account) › Security › API tokens › Create API token, and copy it.
  3. In Connections, choose Add a connection › Confluence Cloud: - Confluence address: your site, for example https://acme.atlassian.net; - Space key (optional): to read one space only; Choose from a list shows the spaces the account can see; - API token and Account e-mail: keep the names shown and paste the token and the e-mail once.
  4. Make it the project's knowledge source (one per project). Today this is done through the API: PUT /v1/assignments/<project id>/knowledge-sources with {"connection_ids": ["<connection id>"]}; the project page does not show it yet.

What happens in a story

Only pages on your Confluence site are read this way, through Confluence's API, by your organisation's runner. The page's text is given to the story as information, never as instructions: text in a page that tries to instruct an AI is reported and ignored. A page Yavaren may not read is listed with the reason. Short links (/wiki/x/...) are not read: link the page's full address.

Copying Confluence pages into Yavaren's Knowledge is not available yet.

Connect and set up · version 1.0.0

Supported technology

What Yavaren does with each work tracker, repository host and code agent, and where one works differently.

Every work tracker, repository host and code agent below is supported for the whole path: reading a story, drafting the change, opening a draft pull request, and learning from what happens to it. Where a service's own interface cannot do something, Yavaren does the closest thing it can, and the list under each table says what and why.

Work trackers

Azure DevOps Boards Jira GitHub Issues GitLab Issues Yavaren Boards (built in)
Read a story with its acceptance criteria Yes Yes Yes Yes Yes
Attachments and documents (PDF, Word, images) Yes Yes Yes Yes Yes
Read comments Yes Yes Yes Yes Yes
Write comments (the brief, notes) Yes Yes Yes Yes Yes
Move an item to a workflow state Yes Yes Yes, differently Yes, differently Yes
Assign items to the requirement's creator Yes Yes Yes Yes Yes
Requirement pipeline write-back (brief, features, stories) Yes Yes Yes Yes Yes
Approvals and gates found in the tracker Yes Yes Yes Yes Yes
Link the story to its draft pull request Yes Yes Yes Yes Yes
Webhooks (start work when an item is labelled) Yes Yes Yes Yes Yes
Pagination of every list Yes Yes Yes Yes Yes
Delivery history: every epic, feature and story of the last years (the project's domain) Yes Yes Yes Yes Yes
Rate limits and retries Yes Yes Yes Yes Yes
Self-hosted / on-premises edition Yes Yes Yes Yes Yes
Authentication Yes Yes Yes Yes Yes

Where a service works differently, and why:

Repository hosts

Azure Repos GitHub GitLab Bitbucket Cloud Bitbucket Server / Data Center
Open a draft pull request Yes Yes Yes Yes Yes, differently
Update the description of an existing pull request Yes Yes Yes Yes Yes
Take a pull request out of draft (when a project asks) Yes Yes Yes Yes Yes
Pull request labels Yes Yes Yes Yes, differently Yes, differently
Link the pull request to its work item Yes Yes Yes Yes Yes
Read review feedback (comments, verdicts) Yes Yes Yes Yes Yes
Pull request outcome (merged, closed, reverted) for learning Yes Yes Yes Yes Yes
Read the base branch's protection Yes Yes Yes Yes Yes
Find the default branch Yes Yes Yes Yes Yes
How a change to a pull request is noticed Yes Yes Yes Yes Yes
Pagination of every list Yes Yes Yes Yes Yes
Rate limits and retries Yes Yes Yes Yes Yes
Self-hosted / on-premises edition Yes Yes Yes Not applicable Yes
Authentication Yes Yes Yes Yes Yes
Create a new, empty repository for a new product Yes Yes Yes Yes Yes
Protect the default branch (pull request and review required) Yes Yes Yes Yes Yes
Deployment environments with required reviewers Yes Yes Yes Yes, differently Not applicable

Where a service works differently, and why:

Code agents

Claude Code GitHub Copilot CLI OpenAI Codex CLI Gemini CLI Aider
Credential (the only secret the CLI receives) Yes Yes Yes Yes Yes
Runs without asking anyone Yes Yes Yes Yes Yes
Model selection Yes Yes Yes Yes Yes
Time limit Yes Yes Yes Yes Yes
Runs in the sealed environment Yes Yes Yes Yes Yes
How the prompt (with the stack and quality blocks) arrives Yes Yes Yes Yes Yes
Reading its answer (review verdict, plans) Yes Yes Yes Yes Yes
Tokens and cost Yes Yes, differently Yes Yes Yes
Read-only mode for analysis (brief, features) Yes Yes Yes Yes Yes

Where a service works differently, and why:

CI systems (deploying a new product)

GitHub Actions GitLab CI/CD Azure Pipelines Bitbucket Pipelines
Start a deployment of one environment, after a named approver approved it Yes Yes Yes Yes
Follow the run to its end Yes Yes Yes Yes
Name the step that failed Yes Yes Yes Yes
Report the deployed address Yes Yes Yes, differently Yes, differently
The CI system's own approval of a deployment Yes Yes Yes Yes, differently
A short-lived identity token for the cloud (no stored cloud key) Yes Yes Yes Yes

Where a service works differently, and why:

Connect and set up · version 1.0.0

Requesting engineers

How to request Tulaian, choose the code agent they use, and release them.

An engineer is one unit of work capacity: it works on one story at a time. You request engineers on the Engineers page and then add them to a project.

Choosing the code agent

Each engineer works with one code agent. These are the agents you can choose from:

An engineer can use Yavaren's own licence for the agent, or your organisation's licence (add it as a Code agent licence connection first). With your own licence, the key stays in your secret store and only the agent receives it.

Getting the most from your engineers

The Engineers page shows how many engineers you have, how many you may add now, how many stories wait for an engineer and how many engineers are free, with a suggestion: one more engineer for each waiting story no free engineer can take, and one for each active project that has none.

Limits, and asking for more

The number of engineers you may run at once depends on your plan or trial. Under Add engineers, choose how many:

What it costs. During a free trial or free credit, the hours of the engineers it covers are free. Engineers beyond the trial's or credit's number are charged at your hourly rate from the start, trial or not; the form says so before you add or ask, and the engineer list marks them Charged in the trial. Your statement shows their hours in the first line and, for clarity, on a line of their own.

For the admins of your organisation.

AI usage this month

Engineers › Usage shows, under AI usage this month, the tokens (input and output) the code agents used this calendar month and the cost as reported by the code agents, by agent. A cost appears only where the agent reported one (Claude Code and Gemini CLI do; Aider and Codex print a usage line; GitHub Copilot CLI reports nothing): Yavaren never estimates it. It is not billed separately: your bill stays engineer-hours. The figures appear when your installation asks the agents for their usage.

An admin can set an alert: an amount in US dollars, a number of tokens, or both. The first time this month's reported usage reaches it, your organisation's admins get one e-mail, once a month. The alert only tells: it never stops, slows or blocks work.

Releasing engineers

Admins release an engineer on the Engineers page. An engineer that is in the middle of a story cannot be released until that story is finished. A released engineer is no longer counted from that moment.

Connect and set up · version 1.0.0

Projects, pickup and governance

How a project ties a tracker, repositories and engineers together, and what each kind of work may do.

A project connects one work tracker to one or more repositories (each with its stack) and to the engineers who work on it. You create projects on the Projects page.

Changing a project

Choose Edit on a project to rename it, change its kind of work or its tracker, change a repository's stack or base branch, add a repository, or remove one (a project keeps at least one). When a project lacks something, for example no engineers or a connection that needs a field, the list says Needs: …. Engineers, automatic pickup and production code keep their own buttons. Stories already started keep what they were given.

Governance per kind of work

Every project says, for each kind of work — tests, specifications and production code — whether Yavaren may do it, how many reviewers a pull request needs, and whether tests must be included. Work a project does not allow is refused before it starts.

Automatic pickup

With automatic pickup on, Yavaren looks at your tracker on a schedule (every 15 minutes unless you choose otherwise). It starts stories that a person approved and marked ready, and breaks features marked ready into proposed stories for you to review. Nothing is started twice: a story that failed is started again only when a person asks.

Webhooks

Instead of waiting for the schedule, your tracker can call Yavaren when a story changes. Create the webhook address on the project; the address contains a secret token, so treat it like a password and replace it if it leaks.

Yavaren's understanding of your code, in your tracker

When Yavaren breaks a feature into stories, it writes down how it understands your current code, for two audiences:

When a feature needs more detail first, the comment on it and the refined draft also carry the business functions. It works the same on Azure DevOps, Jira, GitHub and GitLab.

The full analysis as a file. Yavaren also attaches its complete analysis, yavaren-analysis-<feature>.md, to the feature (and to a refined draft): the outcome, the current state of the code as it read it, every proposed story with its technical design and acceptance criteria. The comment names the file. On Azure DevOps it is under Attachments, on Jira in the issue's attachments, on GitLab a link in the comment. GitHub has no way to attach a file to an issue, so there the comments carry the analysis and the job's result keeps it.

A draft feature written for a business review. A refined draft starts with "Proposed by Yavaren for business review", then why a clearer version is proposed, the proposed description, the business functions it touches and a link to the original feature, with the acceptance criteria in your tracker's own field (Azure DevOps) or as a checklist. It is laid out in your tracker's format: rich text on Azure DevOps, wiki text on Jira, Markdown on GitHub and GitLab. Proposed stories' acceptance criteria are a list (a checklist on GitHub and GitLab).

"Needs more detail before it can be split into stories"

Before Yavaren breaks a feature into stories, it checks that the feature says enough to write stories from: what is in scope, the options or rules a person can choose, and how to tell it is done. When something critical is missing (for example, a "notification preferences" feature that names no notification types or channels), it does not guess. Instead it:

Next, the owner of the requirement adds the missing details: either to the original feature (then removes feature-needs-refinement and tags it feature-agent-ready again), or by approving the draft. Yavaren then proposes the stories for your approval. The job's Result column and its log say why, name the draft and these steps.

Steps in your tracker

Some steps happen in your own tracker, not in Yavaren. On the Projects page, Steps in your tracker shows them for each project, with the exact names that project uses:

Connect and set up · version 1.0.0

Code analysis and development plans

How Yavaren reads your repositories and data sources, reviews them, plans each feature, and applies what you approve.

Yavaren learns how your code is built before it writes any of it, and shows you what it learned.

Your repositories are analysed as soon as you add them

When you create a project, or add a repository to one, Yavaren analyses each repository at once, on your own runner. The analysis only reads: nothing is written to the repository and no code agent runs. It finds:

Data repositories get the same reading. A dbt project, a Databricks bundle with PySpark or Delta pipelines, a Snowflake repository (schemachange migrations, Snowpark, the Snowflake CLI) and a SQL repository (Flyway, Liquibase, a SQL Server database project) are analysed like application code: SQL counts as code; the analysis finds the layers (staging, intermediate and marts, or bronze, silver and gold), how models and migrations are named, the folder materializations, the dbt data tests, unit tests and contracts (or pytest with a local Spark session, Snowpark's local testing, pgTAP, tSQLt), and it says which data stack suits it. Its review adds data points: credentials in profiles.yml, databricks.yml or Flyway settings, SQL built from strings for spark.sql() / session.sql(), GRANT ALL or grants to PUBLIC, DROP and TRUNCATE in migrations, tables named directly instead of ref() / source(), models outside staging reading sources, incremental models without a unique key, marts without a column list, models without a test, and whole DataFrames pulled to the driver. profiles.yml and connection settings are read only for what says how the project is built (the adapter type, target and folder names), never for a value. Stories in a data repository then say in their draft pull request which tests could not run because they need the database or warehouse; those run in your own CI.

Open it under Projects › Code analysis: first across the whole project (sizes, languages, frameworks shared by every repository, differences such as different test frameworks, review points by severity), then per repository. Choose Analyse again whenever the code has changed a lot. Without an engineer on the project the analysis waits until one is assigned.

Which commit, and when. Each repository says Analysed at commit abc1234 on the date the runner read it, and keeps the latest five analyses (commit, date, files and review points by severity) under Earlier analyses. An analysis older than 30 days (your administrator may change this) shows Out of date — analyse again; stories still use it until you do, and nothing is re-run by itself. When Yavaren analyses a repository again by itself (for example the project was edited) and the repository is still at the commit already analysed, it is not read again: the analysis you have is kept and marked as checked. Analyse again always reads the whole repository.

Your project's domain and what it has delivered

As soon as a project's tracker is connected (and whenever it changes), Yavaren reads every epic, feature and story of the last five years in it — titles, types, states, dates, labels, areas and parents, never comments — on your runner, with the tracker connection's own token. From it Yavaren learns:

It is under Projects › Code analysis › Domain and delivery history. Choose Read the tracker again (and how many years) at any time. Every feature is then planned, and every story built, knowing the domain: using its words, staying consistent with what was delivered, and building on the code that carries it.

Which part of the tracker is read. The analysis reads the project's own project in the tracker. It says so at the top: Read from Azure DevOps Boards, project …. By default that is the tracker connection's project. When one tracker connection serves several of your projects (one Azure DevOps organisation with a Salesforce and a Servicing project, say), set each project's own in Projects › Actions › Edit › Project in the tracker (or Choose from … to pick it from the list your token can see). Optionally narrow it to an area path (Azure DevOps), a component (Jira) or a label (GitHub, GitLab) when one tracker project holds several teams' work. Saving reads the tracker again from there; an analysis read from somewhere else is marked Read from elsewhere until then. The project's own project in the tracker is also where its stories are read from and its proposed stories are created.

From Work to the result. On Work, each analysis says what it is (Domain from the tracker, Repository main, Data source) and, once it is done, links straight to it: See the domain analysis or See the code analysis opens the project's analysis on Projects. The same link is in the job's Details.

Data sources

Connect the databases and data platforms the code uses (Connections: PostgreSQL, SQL Server, MySQL, Oracle, Amazon Redshift, Snowflake, Databricks or Google BigQuery, with a login that may only see the structure — each connection's help says which privileges, for example REFERENCES in Snowflake or BROWSE in Databricks), then Projects › Code analysis › Connect the data source, for the whole project or one repository. Yavaren reads the database's structure only — tables, columns, keys, indexes and estimated row counts — on your runner, through the database's own catalog. It never reads a row. Its review of the data model points out, for example, tables without a primary key, foreign keys without an index, columns that look like plain-text passwords, and sensitive personal data in clear columns. On a warehouse (Redshift, Snowflake, Databricks, BigQuery) keys are only informational and there are no indexes, so it asks instead about very large tables that are not clustered, partitioned or sorted. If part of the structure cannot be read (for example the keys, without the privilege), the analysis says so and uses the rest.

You choose what is applied

Each review point has an Apply box. Every security gap and every high or medium point is applied unless you clear it; save your choice per repository and per data source. Applied points reach every story built in that repository: they are fixed in the files a story changes, and never repeated in new code. The story is also told how the code is built (architecture, patterns, conventions, rules, the files to model new code on) and the tables of the data sources it uses.

The development plan of a feature

When Yavaren splits a feature into stories, it also writes its development plan: how each story will be built (the approach, the files to change, each acceptance criterion with its change and its test, the risks, the existing file it is modelled on), from its analysis of the code and the data. The plan is attached to the feature (yavaren-development-plan-<feature>.md), summarised in a comment, and the feature is tagged dev-plan-review.

Stories approved before their plan wait for it and start as soon as it is approved (an admin can switch this off for the organisation or a project). Then each story is built exactly as planned, with the approved points.

A brand-new codebase

When a feature needs a codebase that does not exist yet (for example a separate service), the plan proposes it, with a blueprint taken from the codebase it should be built like: the same structure, frameworks, patterns, rules, tests, CI and deployment, without that codebase's gaps. Its first story sets it up. Once the plan is approved, an admin either lets Yavaren create the empty repository (with the repository connection of the codebase it follows, on your runner; Yavaren never touches a repository that already holds code), or names a repository they created. It is then added to the project and its stories start.

On-prem and cloud

Everything works the same on Yavaren cloud, on-prem (connected or air-gapped) and hybrid: the analysis, the reading of data sources and the creation of a repository all run on your own runners against your own hosts; only the bounded results (never code, never rows, never a secret) are kept.

Requirements and plans · version 1.0.0

Requirements: from documents to pull requests

Turn documents or a tracker item into a brief, features, stories and draft pull requests, with your approval at each step.

A requirement takes documents you upload, an item in your tracker, or both, to draft pull requests. A person in your team decides at three points: the business brief, the features and the stories.

The steps

  1. Intake. Upload the documents (PDF, Word, text, images) or point to the tracker item.
  2. Brief. Yavaren drafts a business brief with a diagram. Review it, edit it, approve it or ask for changes.
  3. Features. Yavaren drafts features from the approved brief. Approve all, some, or ask for changes.
  4. Stories. Each approved feature is broken into stories. Approve them one by one.
  5. Delivery. Every approved story becomes a draft pull request, as in Reviewing draft pull requests.

Every edit you make is kept as a new version, so you can see what changed. If a step fails, the requirement waits until a person retries it.

Questions before each step

Before the brief, the features, the stories and the build, Yavaren checks whether it has what it needs. If not, it asks a few questions, each with why it matters and the assumption it would otherwise make, and the requirement waits with the status Questions. Answer them on the requirement, or reply to the comment on your tracker item with one line per answer (Q1: …). If you would rather not answer, choose Proceed with assumptions. Every answer and assumption is listed in the brief under Decisions and assumptions and used in every later step. An admin can turn questions off for a project, or change how many are asked, under Projects → Delivery preferences.

Who approves

By default the person who created the requirement, or an admin, decides. An admin can name approvers for a requirement under Approvers: then any one of them, and only they, approves the brief, the features, the stories, the set-up pull request and deployments, and answers questions. Each decision records who made it.

Asking for changes

When you ask for changes, add a comment to the whole step or to a single section, feature or story. Each request is a numbered round, and Compare versions shows what changed between two versions side by side.

Diagrams

The brief has three diagrams: the process flow, a business capability map (the stages of your value stream and what each role needs at each stage) and a technical overview (the people, applications, services, data stores and outside systems, where they run, and the trust boundaries between them). Each has a text version and can be downloaded as an SVG image.

Documents

Documents are checked by their content, never run, and only offered back to you as downloads. They are read in an isolated process that holds no credentials.

Requirements and plans · version 1.0.0

The requirements register

Requirements with keys, versions and approval by people; baselines; what each requirement leads to; importing from a requirement you reviewed.

The requirements register keeps what your product must do as numbered requirements (REQ-1, REQ-2, ...). It sits next to the requirement pipeline (documents to brief, features and stories), and the two work together. It is a module: an admin of your organisation switches it on (PUT /v1/modules/requirements).

Today the register is used through the Yavaren API (/v1/requirements/..., /v1/trace/... and /v1/search, listed under API); the console's screens for it are not available yet.

A requirement

Each has a type (business, functional, non-functional, security, ...), a title, a statement, acceptance criteria, a priority and an owner. Every save is kept as a version; Restore brings an old version back as a new one. If someone saved after you opened it, your save is refused: reload, then save again.

Approval

  1. A member writes the requirement (a draft) and chooses Submit for review.
  2. A person who may approve reads it and chooses Approve, Reject or Ask for changes.

For the admins of your organisation.

Who may approve: the people your admin names in the register's settings; when nobody is named, any member or admin.

The approval covers the exact version that was read: if the text changes later, the requirement goes back to review. Only a person signed in approves. An API key, a runner, and Yavaren itself never approve, even a requirement Yavaren drafted.

Baselines

A baseline freezes the current version of a set of requirements ("what we agreed for release 2"). Compare a baseline with today, or two baselines with each other: added, removed and changed requirements.

What a requirement leads to

Link a requirement to work items, pull requests, test runs, releases, deployments and pages. Then ask:

Anything you may not see (a page of a restricted space) is counted, never named.

From the requirement pipeline

One search covers work items, pages and requirements of the parts your organisation uses. Pages of a restricted space you are not on never appear.

Requirements and plans · version 1.0.0

Plan first: what Yavaren reads before it starts

Before a story is implemented, Yavaren reads everything it links to, relates it to the story and lays out a plan. Criteria found in linked material are part of the delivery unless you choose to review or ignore them. You can ask to approve each plan first.

A story often says only half of what is wanted: the rest is in an attached mock-up, a linked specification, the parent epic, a related item or a pull request. Before Tulaian implements a story, it reads all of that, relates it to the story, and lays out a plan. Only then does it write the change.

What it reads

Web pages are read only at public https addresses, never with any of your credentials, and never from an air-gapped installation. Anything that could not be read is listed with the reason.

Where you see it

Open a job under Recent work › Details. What Yavaren read lists every source and whether it was read; Plan shows what each source adds, where it conflicts with the story, the approach, the files to change, each acceptance criterion with the change and the test that proves it, and the risks. The draft pull request has a short version of the same.

If a source contained text that tries to give instructions to an AI, Tulaian treats it as content and tells you.

Approving the plan first

Under Admin › Plan first an admin can switch on Approve the plan before implementation (off by default). A project can choose differently under Projects › Delivery preferences. When it is on, each story stops at its plan and says The plan is waiting for your approval. Open the job's details and either Approve the plan (Tulaian implements exactly that plan) or say what should change and Ask for changes (Tulaian plans again and waits for you again).

When the plan has a question Tulaian cannot do without, the job stops the same way with the question, why it matters and the assumption it would otherwise make. Answer it, or choose Proceed with Tulaian's assumptions.

You can also have each plan posted on the tracker item.

Criteria found in linked material

Linked pages, items and attachments often hold acceptance criteria or business requirements. By default Tulaian includes them in the delivery: they are checked like the story's own criteria, tests are written for them, the reviewers check them, and the pull request lists each one as met, not met or not verified, with where it came from. When one conflicts with the story's own text, the story wins and the other is listed as not adopted.

Under Admin › Plan first › Criteria found in linked material an admin chooses:

A project can choose differently under Projects › Delivery preferences. There you can also name extra fields to read, or fields never to read.

For a requirement, its features and stories, the same criteria appear on the brief and the stories screens, marked with where they came from. When you review them first, you include or exclude each one in the same approval of the brief or the stories.

Letting Yavaren staff review on your behalf

If plans wait too long for someone in your organisation, an admin can switch on Admin › Yavaren staff review — "Allow Yavaren staff to review plans and linked criteria on our behalf". It is off until you switch it on, and switching it on asks you to confirm.

If your organisation accepted the Managed plan review package (Settings › Packages), Yavaren staff review your plans and requirements while the package is active.

Requirements and plans · version 1.0.0

Business terms: your words, rules and constraints

Download the template, describe your business once for the organisation or per project, or start from an industry pack.

Business terms tell Yavaren how your business talks and works, the way you would brief a new analyst on your team. They are used in every step of a requirement: the brief, the features, the stories and the build. Yavaren cites them by id (for example BR-3) and asks you when a document contradicts them.

The template

Open Requirements → Business terms and download the template as Markdown, CSV or Excel. A filled-in example for a fictional company shows what good entries look like. The template has ten sections, each with guidance:

Upload

Admins upload the organisation's terms, used for every project. Members can add terms for one project; where both define the same thing, the project's terms win and Yavaren asks you about the difference. Yavaren checks the file before it is stored and lists every problem with its row, so you can correct it. Each upload is a new version, and earlier versions stay available to download.

Files are read by their content, never run, and kept with your organisation's other documents.

Industry packs

Start from a pack for your industry: financial services, healthcare, retail and e-commerce, public sector, manufacturing and logistics, education, or a general one. A pack includes a compliance checklist and, for some industries, a reference architecture. Download it to adapt it, or use it directly for the organisation or a project. Some packs are part of a paid package.

Requirements and plans · version 1.0.0

Standards & rules: what Tulaian must follow

Upload your terms, practices, patterns and instructions for the coding assistant; approve the rules Yavaren proposes from them.

Tell Tulaian how your organisation builds software, the way you would brief a new engineer: your business and technical terms, best practices, design patterns, architecture decisions, coding conventions, and the instructions you would put in a CLAUDE.md or AGENTS.md file. Yavaren turns them into enforcement rules. Nothing is enforced until an admin approves it.

Upload

Open Standards & rules → Documents. Choose what the document is for: the whole organisation, one product, one project, one repository, or one stack (for example everything in Python). Choose its kind and download the template for it if you like: each template explains how to write a rule that can be checked, with examples. Markdown, plain text, CSV, Excel, Word and PDF are accepted. Yavaren shows what it read and the rules it would propose before anything is stored. Each upload of a document is a new version; earlier versions stay available.

Admins upload documents for the whole organisation; members can upload for a product, project, repository or stack. Files are read by their content, never run, and kept with your organisation's other documents.

Review the proposed rules

As soon as you upload a document, and again when a repository or a production org is connected, Yavaren proposes rules. Each one says where it came from (the document and the section, or what Yavaren found in the repository, such as its formatter configuration). Admins are told when rules wait for review.

Under Waiting for review, an admin can:

Members can edit proposed rules and suggest changes to rules in force; an admin activates them.

What happens with active rules

On every story:

Under In force, choose a repository to see exactly which rules a job there is given. Retire a rule to stop using it.

A check never runs a command written in a document: it can only name a quality tool Yavaren already runs for that stack.

Requirements and plans · version 1.0.0

Planning in Yavaren

Plan your work in Yavaren itself: spaces, epics to subtasks, a board, sprints, releases, and handing a story to Yavaren.

Planning is Yavaren's own place to plan work, for teams that do not want a separate tracker. It is a module: an admin of your organisation switches it on, and only when your plan includes it. While it is off, nothing of it is shown.

Today Planning is used through the Yavaren API (/v1/planning/..., listed under API); the console's Planning screens are not available yet.

Switching it on

An admin switches Planning on with PUT /v1/modules/planning (GET /v1/modules shows each module, whether it is on and whether your plan includes it). Yavaren asks the admin to confirm: a sign-in from the last few minutes, or the phrase change modules in the header X-Yavaren-Confirm. Switching it off hides it again; nothing is deleted. If your plan does not include Planning, Yavaren says so and nothing changes: ask your Yavaren account manager.

Spaces

A space holds one team's work. An admin creates it with:

A scrum space starts with the states To do, In progress, In review and Done. A kanban space starts with Backlog, Ready, In progress and Done. An admin can change the states, limit which state may follow which, set a work-in-progress limit per state, and add fields of your own (text, number, date, or a choice from a list).

Items

Items go from the largest to the smallest: epic, feature, story, task, subtask. Bugs, incidents, improvements and technical debt sit under a feature or an epic, or on their own. Yavaren refuses a parent that does not fit, for example an epic under a story.

Each item has a title, a description in Markdown, up to 50 acceptance criteria, a state, a priority, an assignee, estimates, a due date, tags and your own fields.

When two people change the same item at the same time, the second save is refused with "reload it and try again". Nothing is overwritten.

Change the state, assignee, sprint, release or tags of up to 200 items at once. Either every item changes, or none does.

Comments, mentions and files

Comment on any item. Write @ followed by a colleague's e-mail address, for example @[email protected], and they are told. Only people of your organisation are told.

Attach files to an item: PDF, Word (.docx), Markdown, plain text, PNG or JPEG. Yavaren decides the type from the file's content, not its name. A file is always downloaded, never opened in the browser.

Sprints, releases and views

Save the filters you use often. Your saved filters are yours alone.

Handing a story to Yavaren

When a space is linked to a Yavaren project, hand a story, task or bug to Yavaren (POST /v1/planning/items/<key>/hand-over). Yavaren starts one job for it in that project and tags the item agent-ready. Handing it over again while the job runs does not start a second one. The result is a draft pull request, as for any story.

Who can do what

Viewer Member Admin
See spaces, items, boards and dashboards yes yes yes
Create and change items, comment, attach files no yes yes
Sprints and releases no yes yes
Hand an item to Yavaren no yes yes
Create spaces, change their settings, archive them no no yes
Switch the module on or off no no yes

Requirements and plans · version 1.0.0

New requests: from what you want to approved work

Describe a result or pick a Knowledge page; review a brief and a breakdown into epics, features and stories; a colleague approves; the items appear on your board once.

Plan › New request. No connection, runner or AI is needed: only Yavaren Boards.

Describe what you want

Write the result you want in plain sentences, or use headings such as Requirements, Acceptance criteria, Out of scope. You can also start from a Knowledge page you can read; the request keeps the page's version. Choose the Boards space the work goes to, then Draft the brief. Nothing is created yet.

Check the brief

Each line says where it came from:

Check the breakdown

Yavaren proposes only the levels your request needs: a single story, a feature with stories, or an epic with features. Acceptance criteria are placed on the story they are about; a story without any says so.

If an existing item looks the same, it is shown with a score. Near-identical ones are proposed as Use the existing item instead of creating a duplicate. For each item choose Create it, Use the existing item or Leave it out, and change titles as you like.

Review and approval

Ask for review sends it to your organisation's members (Waiting for you). Another member opens it and presses Approve what I read. If anything changes after that, it needs approving again. You cannot approve your own request.

Then Create on the board. The items appear once, with their criteria, under their parents. If Requirements is switched on, a draft requirement is added to the register for review there.

Requirements and plans · version 1.0.0

Knowledge: your team's pages

Spaces of pages that keep every version, private spaces, review before publishing, templates, comments and files.

Knowledge is Yavaren's own wiki: spaces of pages written in Markdown. Every save is kept, so you can see who changed what, compare two versions and bring an old one back. It is a module: an admin of your organisation switches it on (PUT /v1/modules/knowledge); until then nothing of it is shown.

Today Knowledge is used through the Yavaren API (/v1/knowledge/..., listed under API); the console's Knowledge screens are not available yet. The names of actions below are the API's routes in plain words.

Spaces

For the admins of your organisation.

An admin creates a space with a short key (for example ENG) and a name. A space can be restricted: only the people on its list see it, each as a reader (reads), an editor (writes) or an owner (also manages the space and approves its pages). Admins always see every space.

Someone who is not on a restricted space's list does not see it at all: not in the list of spaces, not in search, not in links. A viewer of the organisation reads pages but never changes them.

Pages

Review before publishing

A space can ask for an owner's approval before a page is published. Then:

  1. Save the page as a draft and choose Submit for review.
  2. An owner of the space (or an admin) reads it and chooses Approve, which publishes exactly that version, or Ask for changes.
  3. If the page changes after you submitted it, submit it again: an approval always covers the text that was read.

Only a person signed in approves. A key, a runner or Yavaren itself never approves a page.

Reviews and quality · version 1.0.0

Reviewing draft pull requests

What comes back for each story, and what to check before you merge.

Every story comes back as a draft pull request in your repository. A person in your team reviews it and decides; Yavaren never merges.

What the pull request contains

What to check

  1. The change does what the story asks, and nothing else.
  2. The tests describe the behaviour, not the implementation.
  3. Files your team protects were not touched (Yavaren removes changes to protected paths before it pushes).
  4. The checks in your own pipeline pass.

If the change is not right, comment on the pull request or the story and hand it over again; the engineer revises it on the same branch, up to the number of revisions the project allows.

Stopping work

An admin can stop a story that is waiting or running: open it under Recent work › Details and choose Stop this job. The engineer stops; nothing is pushed after it stops; the draft pull request, if any, stays. Stopped work is never started again by itself: hand the item over again when you want it done. Work that has already finished cannot be stopped. Show older work under the list reads further back than the latest 25.

Telling us how it went

Use Feedback on a finished piece of work to rate it and say what could be better. Your feedback is used to improve how engineers work.

Reviews and quality · version 1.0.0

Code review: feedback in your pull requests

Let Yavaren review pull requests against your active rules and comment in the pull request; you choose which, and how.

Yavaren can review pull requests with an AI reviewer that applies your organisation's active enforcement rules (see Standards), then post its feedback in the pull request. It comments; it never approves, merges or pushes. A person on your team always decides.

Switch it on

Open Code review. An admin ticks Code review is on for your organisation and saves. From then on:

Reviewing your developers' pull requests

For each repository where you want it:

  1. Under Repositories, choose Change and set Your developers' pull requests to On.
  2. Choose Make the webhook address. Copy the address and the secret: they are shown once.
  3. Add them to the repository's webhooks on your host, as the screen says (GitHub, GitLab, Azure Repos, Bitbucket Cloud or Bitbucket Server). Only pull request events are needed.

Making a new address stops the old one. Stop the webhook stops it altogether. A repository needs an active project that uses it: one of that project's engineers does the review.

How it gives feedback

You can also choose how serious a finding must be to be posted on a line, how sure the reviewer must be, the most comments per pull request, paths to leave out (such as docs/**), and whether draft pull requests are reviewed.

What it never does

Where to see the results

The Reviews list on the Code review page shows every review, with its findings. A delivery's details show the review of the pull request it opened. Each completed review counts as one review on your statement; reviews are priced through your package.

Reviews and quality · version 1.0.0

Tests and automation: code, unit tests and automation tests in every story

Choose your project's unit-test and test-automation frameworks, or let Yavaren follow what your repository already uses. Every story comes with tests that prove its acceptance criteria.

Every story Tulaian delivers has three parts: the production code, unit tests for the code it adds or changes, and automation tests that prove the story's acceptance criteria. Automation tests can be UI, API, mobile, performance or BDD tests, whichever fits the change.

Choosing the frameworks

Under Projects › Delivery preferences › Tests and automation, an admin chooses the project's frameworks:

Only frameworks that suit the project's stacks are offered. Leave a kind on Follow what the repository uses to keep what is already there.

For a new product, the new-product wizard asks the same question on its Stacks step.

An existing repository

Tulaian first looks at what your repository already uses, from its configuration files and dependencies: Jest, Vitest, pytest, JUnit, xUnit, NUnit, RSpec, Playwright, Cypress, Selenium, WebdriverIO, Appium, REST Assured, Karate, Postman/Newman, k6, Cucumber and many more. It then follows the repository's folders, file naming, page objects and fixtures.

What is already there wins. If you chose Playwright but the repository uses Cypress, Tulaian writes Cypress tests and tells you so. To add Playwright alongside Cypress, tick Add my choice alongside. Tulaian then sets Playwright up in its own folder and leaves the Cypress tests exactly as they are.

The project page shows what each repository was found to use, and what a story there will use.

What you see on each story

The draft pull request has a Tests and automation section. Each acceptance criterion is listed with its unit tests and its automation tests. If a criterion has no automation test, the section says why. The section also says what actually ran.

Automation tests run headless on the runner when it has what they need: a browser, a device, or the running application. When it does not, Tulaian only lists, compiles or dry-runs them, and says plainly that they were not run, and why. Tests are never reported as run when they were not.

An acceptance criterion with no automation test, or automation tests that fail, goes back to Tulaian to fix. What is still open is listed in the pull request's quality scorecard. The same view is under Recent work › Details › Tests and automation.

Functional validation: which criteria are proven

A criterion is verified only when every test linked to it ran in the story's job and passed. A test that was only written, a test run that passed as a whole without a result per test, or tests that were only listed are shown as such: Tests written, Suite passed or Not run. They are never shown as verified.

Under Projects › Delivery preferences › Functional validation you see, for each work item, every acceptance criterion with its tests, the last result of each test, its status, the pull request and the job. You also see how many criteria are verified. This is functional coverage, not code coverage: Yavaren does not measure code coverage.

A change that removes assertions, skips tests or deletes test files is sent back to Tulaian to fix. If it is not fixed, the pull request says the definition of done is not met.

Waivers. An admin can waive one criterion of one work item, for example one that is checked by hand. A reason is required, and an end date is optional. The criterion then shows Waived, with who waived it, when and why. It never shows as verified. A waiver changes nothing else: the story, its checks and its approvals stay as they are. An admin can revoke it at any time, and it stops applying after its end date.

Test-only stories

Label a story work_type:test to have Tulaian write automation tests for an application that already exists, for example to work through an automation backlog. Tulaian does not change production code in such a story.

When automation lives in a separate repository, each story's pull request carries the code and unit tests. A test-only job then writes that story's automation tests in the automation repository.

Reviews and quality · version 1.0.0

Quality Intelligence — test automation from your source code

Generate a complete, runnable test automation project from your application's repository, even with no tests today; run it against your test environment, read why tests fail, and get locator repairs as draft pull requests.

Quality Intelligence (Quality › Quality Intelligence) is switched on per organisation. It needs a project whose repository holds the application, and one of your runners (7.5 or later; one with a browser for web tests).

Before you start

The twelve steps

  1. Choose the repository. Generate test automation from my application, then the project and repository.
  2. Analyse. Read-only: nothing in your repository changes. It takes a minute or two on your runner.
  3. Review what was found. Pages, forms, API endpoints, tables and screens, each with the file and line it comes from. Found in the source is not the same as seen running: a run confirms it.
  4. Choose what to automate. Web, API, database, mobile — each layer can be left out.
  5. Review the framework. If you already have tests, Yavaren extends that framework. Otherwise it recommends one for your team's language (for example Playwright in TypeScript) and says why, what it needs and roughly what a run costs. You can choose another.
  6. Configure the environment (the Environment tab): address, whether tests may create data.
  7. Approve the strategy. Only a person can, for the analysis they reviewed. Nothing is generated before.
  8. Generate the framework. A complete project under automation/: configuration, fixtures, page objects, test data helpers, a CI job and a README.
  9. Generate the tests. In the same step: one test per designed case, each citing its evidence.
  10. Run. Yavaren installs, checks and runs the project before proposing it.
  11. Review results and coverage. A test counts only when it ran and passed.
  12. Draft pull request (or a zip to download). Review and merge it like any pull request.

Reading the tests

Every test starts with a comment: what it checks and where that comes from, for example # evidence: app/templates/login.html:10. A test never asserts something your code does not show. When Yavaren cannot tell — what a person should see after signing in, which roles may delete — the test is pending: it skips and says why, and the question is listed in the README.

When tests fail

The Runs tab says why each failed test failed, with how sure Yavaren is:

Running the generated project yourself

automation/run.sh all        # or ui | api | database | mobile

with BASE_URL (and API_BASE_URL), QA_USERNAME / QA_PASSWORD for a test account, QA_ALLOW_WRITES=1 where tests may create data, DATABASE_URL + QA_DATABASE_DISPOSABLE=1 for the database suite, QA_DEVICE=true where an emulator runs. The CI job stays off until you set the repository variable QA_AUTOMATION_ENABLED to true and QA_BASE_URL to your test environment.

What it does not do

It does not run tests against production, make real payments, send messages to real people, merge anything, change your application's code, or claim a mobile test ran without an emulator or simulator. Mobile flows are generated and checked; running them needs a runner with an emulator or simulator, which your administrator declares on that runner.

Reviews and quality · version 1.0.0

Unit tests for your code

Yavaren writes unit tests for your own Python and TypeScript/JavaScript functions, runs them, shows they catch deliberate defects, and proposes only the new test files as a draft pull request.

Quality › an application › Unit tests. No test environment is needed: the tests run on your runner.

Start a run

Press Write and run unit tests. You can name up to ten modules, for example src/billing/pricing.py. If you leave this empty, Yavaren chooses up to five modules with the most testable functions.

What you get

Read each test's comment

Comment Meaning
From approved criteria the behaviour your approved requirement describes
From the docstring the example in the function's documentation
From the code's own check the input that makes your code raise its own error
Records today's behaviour — review what the code does today. If the code is wrong, this test is wrong too: check it

Functions that read the clock, random numbers, files, the network or settings are listed as not tested, with the reason. Give them a parameter for that value and they can be tested.

What is supported

Jest, Java, .NET, Go and mobile unit tests are not offered yet; the matrix under What Yavaren can test says so.

Reviews and quality · version 1.0.0

Automation repositories — where your generated tests live, and their pipeline

Keep the tests Quality Intelligence generates in your application's repository, in a repository you already have, or in a new private repository Yavaren creates in your organisation; switch on a complete pipeline for them in your own CI and run it for an exact version of your application.

Quality › Quality Intelligence › your application › Repository.

Choose where the automation lives

Choice What happens
In the application's repository (default) The tests go into an automation/ folder next to your code, as a draft pull request.
In an existing repository Yavaren adds a folder of its own there (never over your team's files), as a draft pull request. Your application's repository is not changed.
In a new repository Yavaren creates a private repository in your organisation after an administrator confirms it, and proposes the tests in it as a draft pull request.
One repository per layer Advanced: separate repositories for web, API, database or mobile tests.

Choose the connection (one of your repository connections: its host and credential are used), the organisation (empty = the connection's own), the name (Yavaren suggests <application>-automation), and the CI system with its triggers. Saving resets the strategy's approval: what is generated and where it goes are approved together.

Create the new repository

  1. An administrator approves the strategy.
  2. On the Repository tab, Create the repository… shows exactly what will be created — host, organisation, name, visibility — and the estimated pipeline time. Create the repository confirms it.
  3. Yavaren checks the credential's permissions, creates the repository (private), makes its first commit (a README, an ignore file and a marker; nothing that runs), generates the automation on a branch, runs it against your test environment, and opens a draft pull request.
  4. Review and merge the pull request yourself. Yavaren never merges.

If something stops it (a permission missing, the name taken), the steps say why. Resume runs the same request again: what was done is found and kept, and nothing is created twice.

Switch the pipeline on

The pipeline is in the pull request, switched off. After merging:

  1. Set the secrets it needs in your CI (Yavaren never reads or writes their values): QA_DATABASE_URL for database tests (a database with no real data), QA_APP_REPOSITORY_TOKEN (read-only) when the database tests read your application from its own repository, and optionally QA_USERNAME / QA_PASSWORD for a test account.
  2. Switch the pipeline on (an administrator). Yavaren sets the plain variables — the test environment's address, its kind, whether tests may create data — and switches it on only when nothing required is missing. It never runs for an environment marked production.
  3. Run the pipeline for a branch, a pull request (refs/pull/42/head) or an exact commit. The run records which application commit was tested and checks the pipeline's own record of it.

To start these tests from your application's own pipeline, copy the step shown under Start these tests from the application's pipeline into your application repository. It goes one way only.

Permissions per host

Host Create the repository Write the tests Configure and run the pipeline
GitHub Administration: write on the organisation (fine-grained token or GitHub App), or repo Contents and Pull requests: write Actions: write, Variables: write, Secrets: read
GitLab api scope, Developer on the group api, Developer on the project Maintainer (CI/CD variables), api
Azure DevOps Code: read, write & manage, in your existing project (Yavaren never creates a project) Code: read & write Build: read & execute
Bitbucket Cloud repository:admin in the workspace repository:write, pullrequest:write pipeline:write, pipeline:variable
Bitbucket Data Center PROJECT_ADMIN REPO_WRITE in your CI server (a Jenkinsfile is generated)

Yavaren never widens a token by itself: a missing permission is named, with how to grant it.

Troubleshooting

You see Do
"the host refused to create the repository (403)" Grant the create permission above (or create it EMPTY yourself), then Resume.
"a repository named … already exists there and holds code" Choose another name, or choose it as an existing repository.
"the credential cannot see the organisation" Choose an organisation the connection's account belongs to (Choose from a list shows them).
"the pipeline stays switched off: set the secret(s) …" Set those secrets in your CI, then switch it on again.
"the pipeline tested application commit …, not the requested …" The pipeline did not check out the commit asked for; check QA_APP_REPOSITORY_URL and the token.
A run "did not finish in time" It is still running in your CI; its page has it.

Disconnect stops Yavaren using the repository; the repository and everything in it stays.

Reviews and quality · version 1.0.0

When a quality run fails — what went wrong and what to do

Every failed quality run says what failed, the likely cause and the evidence for it, the safe next step and who can take it; plus what changed in your application, pipeline template versions, pausing, and usage against your plan.

Quality › Quality Intelligence › your application.

What went wrong

Open a run on the Runs tab. A run that failed, or whose tests failed, shows What went wrong:

Part What it says
What failed the step: reading the application, generating, running the tests, creating the repository, the pipeline run
Likely cause for example "The credential lacks a permission", "A secret the pipeline needs is not set", "The test environment could not be reached", "A test could not find what it looks for" — with how sure Yavaren is
Evidence the lines that led to it, with tokens and passwords removed
Next step the safe thing to do; Yavaren never suggests widening a token, skipping tests or using production
Who can fix it you, an admin of your organisation, your CI or repository host's administrator, or Yavaren support

When Yavaren cannot tell, it says the cause is unknown. Give support the reference shown under the diagnosis.

What changed

The Changes tab compares the latest analysis with the one before:

It lists the tests each change affects, and tests of something that no longer exists (for you to retire; Yavaren never deletes them). Propose the update as a draft pull request generates the update once per change, after the updated strategy is approved by a person. It goes to where your automation lives; Yavaren never merges.

Pipeline template

Each generated pipeline file starts with a line naming its template and version. A newer version is proposed as a draft pull request. A pipeline file you changed is kept, and the new version is offered next to it.

Pause

On Environment, an admin can pause new quality work for an application (with a reason). Nothing is deleted; Resume restarts it.

Usage this month

At the bottom of the page you see the month so far:

Quality Intelligence calls no AI model.

Reviews and quality · version 1.0.0

Parallel work

How Yavaren keeps stories that change the same files from conflicting, and what it tells you about the order to merge.

Your engineers often work on several stories of one repository at the same time. When two of them change the same files, the second pull request would conflict with the first as soon as the first is merged. Yavaren checks for that before it starts.

What Yavaren does

A story that waits says why, for example: "waiting for PAY-7 because both change shop/discount.py". It starts by itself when that is done.

What you see

What you can do

Members can Start now a story that waits (it may then conflict, and Yavaren refreshes it when the related work merges) and Refresh an open pull request.

Admins choose how stories that change the same files are coordinated, for the organisation or for one project:

Reviews and quality · version 1.0.0

Release notes for engineers and for everyone else

Capture a release from your repositories, read its technical and business notes written from the same facts, have a reviewer approve them, publish them, and let people follow the channels they care about.

Deliver (Releases).

Channels

A channel belongs to a project. It names the repositories it covers and the branches or tags it follows, for example every tag starting with v. When a match is found, it only creates a draft: nothing is published or sent until people decide. An admin creates channels and can name who reviews and who publishes.

A release

Capture now (or a matching tag) asks your runner to record each repository's exact revision and the commits since the channel's last approved release. Each release shows:

Two editions

Review and publish

A reviewer of the channel approves both editions together. When the channel separates authors and reviewers (the default), someone who asked for the release or edited its wording cannot approve it. Any change after approval needs a new approval.

The release manager (or an admin) publishes. Publishing puts the notes in the release center and tells followers. Nothing is pushed to your repository host, and no tag is created or moved.

A published edition can be corrected: a new version with a note, approved by someone else. It can also be withdrawn, with a reason. E-mails already received cannot be recalled.

Following

On Following, choose business or technical notes and follow a channel. Following never changes your plan. You can pause or stop at any time, receive notices in the app or by e-mail, and choose a daily or weekly digest instead.

Evidence

Build evidence pack (release managers and auditors) exports an approved release: revisions, hierarchy, tests, approvals, deployments, gaps and the published notes, with a checksum for every file. Verify it with python -m src.release verify <folder>. It supports an audit. It is not a certification, and it carries no signature.

Reviews and quality · version 1.0.0

Is this release ready, and where is it?

Deliver shows each release candidate's exact revisions and builds, the Quality results for those revisions, readiness gates that never pass on missing evidence, the approvals your policy asks for, and where the release was deployed and who can use it.

Deliver (the bar), then Overview, Release candidates, Readiness, Releases, Environments, Deployments or Evidence.

A release candidate

Open one from Release candidates. The page has these parts:

Builds and deployments from your tools

Your CI posts each run to POST /v1/delivery/builds with an organisation key:

Your deployment tool posts to POST /v1/delivery/deployments, naming the revisions it deployed.

Both are recorded as reported by an outside system. A release manager can attest one when it names exactly the release's revisions. A record naming other revisions is shown as contradicting the release, and readiness fails.

Deployed is not available

After a deployment, record who can use the release (Evidence › Availability): everyone there, or a flag, a region, a cohort, a plan or a percentage (through the API). Until then the release is deployed, not available.

Yavaren does not deploy and does not control your rollout. Record what your own system did. Health is unknown until something reports it.

Waivers

An admin may waive one failed or blocked gate, for example for a hotfix. A waiver records:

The gate shows Waived, with who waived it and until when. Scope, evidence integrity and approvals cannot be waived.

Incidents

Record an incident against a deployment, or let your incident tool post it. The incident page walks back to the release, its stories and requirements, and lists what was missing, for example a story with no test evidence. It then proposes follow-up work. You choose which proposal becomes an item on the board. Nothing is created or changed by itself.

Reviews and quality · version 1.0.0

Keep your tools in step with Yavaren

Synchronise Yavaren Boards, Requirements and Knowledge with Jira, Azure Boards, GitHub Issues, GitLab or Confluence — each field owned by one side, a preview before any write, every conflict decided by a person.

Settings › Synchronisation (admins set it up; members see its health).

Set up

On Set up, choose:

Mode What happens
Linked by reference outside items are linked and shown; nothing is copied or written
Imported once copied into Yavaren once
Follow the outside tool its changes update Yavaren; nothing is written outside
Publish from Yavaren Yavaren's changes are written outside
Controlled two-way each field is owned by one side or shared

A new synchronisation is a draft: nothing has been read or written yet.

Preview, then allow writes

Preview reads your tool and shows every item that would be created or changed, and every conflict, without changing anything. Only after the preview of the current version can an admin choose Allow the previewed writes. Changing the mapping makes a new version, which needs a new preview and a new approval.

Conflicts

When both sides changed the same field, or a change touched a field the other side owns, Yavaren does not pick a winner. The conflict waits under the synchronisation, and an admin chooses one of these:

An approved requirement is never changed in place. Taking an outside change makes a new version that must be approved again.

Deleted items are never deleted on the other side: they are shown for a decision. Archive the item in its own tool, then choose unlink.

What each tool supports

The What each tool supports tab lists, for each tool:

No tool has been verified against a live instance yet. A repository host alone (Bitbucket, Azure Repos) is not a planning or knowledge tool.

Reviews and quality · version 1.0.0

Corrections of delivered work

Give feedback on something Yavaren delivered, review how it will be corrected, and accept or reject the correction.

When a draft pull request, tests, a fix, an update, a brief, features, stories, a plan or release notes are not right, say what should change. Open the delivered job under Build › Hand over work and choose Give feedback on this work, or see every round under Build › Corrections.

Giving feedback

Write what should change in your own words, and add points if you can: what kind of problem, how serious, and the file and line. Yavaren treats your feedback as information about the work, never as instructions to obey.

The correction strategy

Yavaren works out why the work went wrong and lays out what it will do, which checks it adds, and which of your rules and lessons it follows. Depending on your organisation's policy a member reviews it first: Approve and correct, Edit the strategy, or Cancel this round. An admin sets the policy under Build › Corrections › Policy (always, only high-risk, never), and can ask for another member to approve.

The correction

Code and tests are corrected on the same draft pull request: one more commit and one comment that answers each point. Nothing is merged; the pull request stays yours to review. Unit tests are corrected in test files only. A brief, features, stories and plans come back as a new version for approval; release notes are corrected by your release managers.

Accepting or rejecting

Accept the correction, or choose Not right yet, say what is still wrong, and the next round starts. After the number of rounds your plan allows, Yavaren support takes the item over.

What Yavaren learns

Why work needed correcting becomes a lesson for the next jobs in your organisation. Across organisations only counts and fixed text are used, never your feedback; an admin can switch that off.

Reviews and quality · version 1.0.0

Guidance for your codebase

See what Yavaren understood of your rules for each part of your work, acknowledge it, and adopt Yavaren's recommended baselines.

Build › Guidance shows, for the whole organisation, a stack, a project, a product or a repository, the rules Yavaren follows there, where each came from, and what it still asks.

What Yavaren understood

Only rules an admin activated count. Each shows its source — your document and section, or a baseline. Conflicts between scopes, rules still waiting for activation and documents that gave no rule are listed as questions.

Acknowledging

An admin reviews the understanding and chooses Acknowledge this understanding. When a rule changes later, the scope shows what changed and asks again. Acknowledging never changes a rule.

Yavaren recommends

Recommended baselines are rule sets per concern (secure coding, testing, API design, a new application) and per stack. Adopt for this scope proposes their rules; an admin activates them under Standards & rules before any job uses them. A baseline is a starting point, not a certification.

Waiting for you and the mobile app · version 1.0.0

Waiting for you

Everything Yavaren needs a person to decide, in one list; how you are told, reminded, and how to choose.

Yavaren stops wherever a person must decide, and tells the people who can decide. For example:

Yavaren never decides for you. Each request only tells you what is needed; you decide on the usual screen.

Who is asked

The person who handed the work over:

The step's approvers: for example a product's named approvers, or your admins for rules and offers.

Nobody is asked to decide something they are not allowed to decide. A viewer is never asked, and neither is someone who is not a named approver of that product.

Where you see it

Open Waiting for you in the navigation. You see three lists:

Each request says what is needed, why, and the deadline if there is one. Its button opens the screen where you decide. For a story's plan, a pull request or a failure, you can also decide under Details, right there. Every page shows how many things are waiting for you.

How you are told

Reminders

If nobody acts:

  1. Yavaren reminds you after one working day.
  2. It reminds you again after three working days.
  3. Then it tells the project's owner and your admins, once, and only those of them who may decide.

Reminders stop as soon as someone decides. For a pull request, a story that needs review or a failure, you can choose Seen — stop reminding me. That changes nothing else.

Your choices

Under How you are told on that page, set:

Admins set your organisation's defaults in People, billing, activity:

Waiting for you and the mobile app · version 1.0.0

The Yavaren mobile app

Pair your phone, see what waits for you, approve plans and criteria, read a pull request's AI review, get notified.

The Yavaren app for iPhone and Android lets you:

The app can do only what you can do on the web. If you are a viewer, it shows things but does not approve them.

Sign your phone in

With a pairing code (most installations):

  1. In the console, open Mobile app and choose Show a pairing code.
  2. In the app, tap Scan the QR code and point the camera at the screen. Or tap Type the code, enter the code (for example ABCD-2345) and the server address — the address you open this console at.

The code works once, for 10 minutes. Showing a new code ends the old one.

With your WeCan account (Yavaren cloud): there is no code. In the app, choose Sign in with WeCan and use the same e-mail and password as on the web.

Your phones

Mobile app lists your phones: name, platform, when each was last used and whether notifications are on. Sign out stops a phone at once — use it when a phone is lost or replaced. A phone that is not used for 30 days signs out by itself.

Notifications

Turn them on in the app (Settings › Notifications). You get one notification per request, reminder or escalation, with a title and one short line — never code or secrets — and not during your organisation's quiet hours. Your admins can switch phone notifications off for the whole organisation (Waiting for you › how people are told). An installation that is not connected to the internet never sends them; the app's list still shows everything when you open it.

New products · version 1.0.0

New products: from an idea to a running application

Start a product with no code, grant access step by step, and deploy each environment when a person you named approves.

A new product starts with no code at all. You choose how it is built and where it runs; Yavaren creates an empty repository, opens a set-up pull request with the application, its infrastructure and its pipeline, and deploys through your own pipeline. A person in your team decides at every risky step.

Start a new product

Open Requirements and choose New product. The wizard asks, one step at a time:

  1. Product: its name, the project, and a tracker item if you have one. Documents are added on the requirement's page afterwards.
  2. Stacks: the application's language and framework. Each choice has a short guide.
  3. Repository: where the new repository goes on your repository host, whether it is private, its main branch, and how many reviews a pull request needs.
  4. CI/CD: the pipeline system. The recommended one is your repository host's own.
  5. Where it runs: Azure, AWS, Google Cloud, a Kubernetes cluster (in your data centre or a cloud), or your own Linux or Windows servers. For a cloud you give the subscription, account or project and the region.
  6. Environments: dev, staging and production, their addresses, and whether dev is deployed on every merge (off unless you choose it).
  7. Approvers: the people who decide for this product: the brief, the features, the stories, the set-up pull request and every deployment. Only they can.

Each step shows the recommended choice. You can change the plan until the repository has been created; after that only environments and approvers can change.

Grant access

The requirement's page shows a checklist made for your choices: the repository host, the pipeline system, your cloud's trust for the pipeline (no stored cloud key where the cloud allows it), the cluster or servers, the container registry, and optionally a domain. Each item explains what to create, with the least access that works, and gives commands you can copy.

You never enter a password, key or token here. You store it in your organisation's secret store and enter only its name. Yavaren refuses anything that looks like a secret value.

Verify runs a read-only check on your own runner and tells you in plain words what it found, for example "the role trusts exactly the expected identities" or "this host's key is not in the list you gave". Some things cannot be checked from outside (a pull agent on your servers, for instance); an approver confirms those. The requirement waits until every required item is verified or confirmed.

The repository and the set-up pull request

Yavaren creates the repository only if it does not exist, or if it holds nothing but a README, a licence or ignore files. A repository with code in it is never touched: the step stops and says which files it found. Yavaren then adds the environments, opens the set-up pull request as a draft, and protects the main branch so changes need a review. A person in your team reviews and merges it. Yavaren never merges.

Deploy

After the set-up pull request is merged, the page offers Deploy to dev, Deploy to staging and Deploy to production. When an approver you named approves, Yavaren starts your own pipeline for that environment and follows it. Your pipeline system's own environment approvals still apply. The deployment runs in your pipeline, in your environment, with your identity.

The page then shows the pipeline run, the deployed address, or the step that failed, with the job's log. If a run is still going, Check again follows it again. Go back deploys the previous successful version of that environment, approved in the same way.

Your own servers

For Linux or Windows servers you choose how deployments arrive. With SSH, the pipeline connects as a deploy user that is not an administrator, and only to hosts whose keys you listed. With the pull agent, nothing connects to your servers: each server checks the registry and updates itself. Applications run with Docker Compose, as system services on Linux, or as a Windows service.

Where the work runs

The checks, the repository set-up and the deployments run on your runners like any other work, in your cloud or your data centre. Nothing needs to reach into your network.

New products · version 1.0.0

Test automation in a new product

Choose the unit and test-automation frameworks for a new product; Yavaren sets them up with the application and its pipeline.

When you start a new product, the Stacks step also asks how it is tested. The unit tests come with the application, in your stack's own framework, for example pytest for Python, Vitest for React and JUnit for Java. You can add one test-automation framework of each kind:

A choice that does not fit your stacks is refused, with the reason next to it. One example is a browser framework for a product that has only an API.

What you get

Each chosen framework gets a ready test suite in the set-up pull request, in automation/ui, automation/api and so on:

Every story after that adds tests to these suites for its acceptance criteria.

You choose where the suites live:

In your pipeline

Your pipeline gets one job per suite on GitHub Actions, Azure Pipelines, GitLab CI/CD and Bitbucket Pipelines. Each job runs its suite headless and keeps its test reports.

The suites need somewhere to run against. Set the pipeline variable AUTOMATION_BASE_URL to a test environment (never production). Until you do, the suites are only compiled or listed, and the job's summary says plainly that the tests were not run. Mobile suites run where you set AUTOMATION_DEVICE to true on a runner with an emulator or device.

No password or key is ever written into the suites. Read test credentials from your pipeline's own secrets.

Services, support and updates · version 1.0.0

Services and engagements

What Yavaren's people offer besides delivery — delivery project management and AI delivery consulting — and how to ask for an engagement.

Yavaren designs and develops software and applications for you as an outsourced AI delivery service: Tulaian, Yavaren's AI delivery engineers, take your stories, features and new products to reviewed draft pull requests, under your approvals. Around that work, Yavaren's people offer two services:

Asking for an engagement

Open Services. An admin of your organisation fills in the service, a title, your goals, the scope, a timeline and who Yavaren should talk to, and sends it. Nothing is charged when you ask.

Yavaren staff come back to you. You follow the engagement on the same page: its status (Received, Scoping with you, Offer made, In progress, Closed) and the updates Yavaren shares with you.

The offer

If the engagement is a fit, Yavaren makes your organisation an offer. An admin accepts it under Packages, like any package: the price you accept does not change.

On an installation you run yourself, the page describes the services; ask your Yavaren account manager to start one.

Services, support and updates · version 1.0.0

Support

Get help with a problem in Yavaren or in software Yavaren delivered: open a ticket, follow the thread, and turn a bug into a fix.

Open Support to tell Yavaren about a problem: in Yavaren itself (the console, a job, a connection), or in software Yavaren delivered for you.

Opening a ticket

You need member access. Give it a title and say what happened; add what you expected, the steps to see it, and links to the job, pull request or work item it is about. Choose a severity:

Severity When First answer due within
Critical Production is down, or data is at risk 4 hours
High An important flow is broken 8 hours
Normal Something does not work as it should 24 hours
Low A question, or a small thing 72 hours

Each ticket also has a time by which it should be resolved: 24 hours for critical, 72 for high, 120 for normal and 240 for low. If the first answer or the resolution is late, the ticket is marked late and Yavaren's support staff and on-call person are alerted. Your installation may use other times, and may count only business hours. Once the ticket is open you can add screenshots and documents (PDF, Word, Markdown, text, PNG, JPEG); files are checked by their content and only ever downloaded.

The thread

Yavaren support answers in the ticket's thread, and the person who opened it gets an e-mail. Everyone in your organisation can read it; members can reply, close it and reopen it. An admin can export a ticket as a file.

Fix it

For a problem in software Yavaren delivered, linked to its project, Fix it turns the ticket into one bug-fix story for Tulaian. Tulaian finds the cause, fixes it, adds a test that shows the problem is gone, and opens a draft pull request for your review. It can be started once per ticket, by a person; nothing is merged for you.

On an installation you run yourself

Your own administrators answer tickets. Tickets go to Yavaren support only if your installation allows it and is connected to Yavaren cloud; otherwise they stay inside your network, and an admin can export one to send it by other means. A ticket's files go with it only if a member ticks Send this ticket's files to Yavaren support on that ticket (off at first; a limit on how many and how large). Internal notes never leave your installation.

Services, support and updates · version 1.0.0

Software updates

Have Yavaren update a repository's dependencies, runtime or framework, or fix security advisories, as draft pull requests.

Open Updates to have Yavaren update your software for you. Each update arrives as a draft pull request: your team reviews and merges it; Yavaren never does.

Asking for an update

You need member access. Pick the project and repository, and what to update:

Tulaian works out what is outdated with the repository's own package manager (for pip and Gradle projects, by asking the public registries PyPI and Maven Central from your runner; never from an installation with no internet connection), makes the update, runs your build and tests and the quality checks, and opens the draft pull request. It lists every package with its old and new version and a link to its release notes, and shows the quality scorecard.

Repeating updates

An admin can have a repository updated every few weeks. Each run is started once; a run that fails is not started again by itself. Switch a repeating update off at any time. With Skip while open, a run is skipped (and listed as Skipped, with the reason) while the previous update pull request of that schedule is still open.

What you see

The page lists the open update pull requests, every update asked for and how it went (draft opened, nothing to update, skipped, or failed and why) and what became of its pull request (open, merged, or closed without merging, as your repository host reports it), and the repeating updates.

Administration · version 1.0.0

People, sign-in and API keys

Who can do what in your organisation, how people sign in, and how to use API keys.

Roles

Role What it may do
Viewer See work, projects, engineers and requirements. Change nothing.
Member Everything a viewer may do, and hand over work, create requirements and approve them.
Admin Everything a member may do, and manage connections, engineers, people, API keys and billing.

For the admins of your organisation.

Inviting people

Admins invite people from People, billing, activity. If your organisation limits sign-in to its own e-mail domains, invitations to other domains are refused.

API keys

An API key lets a program act for your organisation, with the role you give it. The key is shown once when it is created; Yavaren keeps only a fingerprint of it. Revoke a key you no longer use.

The activity log

Every change in your organisation is recorded: who, what and when, including attempts that were refused.

Administration · version 1.0.0

Give leaders Leadership Intelligence only

Put leaders in the ready-made Leadership group, or invite them straight into it, so they see Leadership Intelligence and nothing else.

Every organisation has a ready-made group called Leadership under Settings › Access. Its people see Leadership Intelligence only, to read — no other workspace, and they change nothing. It applies even while your organisation has not switched access groups on.

Add a leader who is already in your organisation

  1. Open Settings › Access and choose Edit on Leadership (marked Ready-made).
  2. Tick the people, and choose which projects they see (every project, by default).
  3. Choose Save group. From their next page, they open Leadership Intelligence.

Invite a new leader

  1. Open Settings › Team › Invite someone.
  2. Under Access groups, tick Leadership.
  3. Choose Viewer as the access, enter their work e-mail and choose Send invitation.

You can tick any of your groups when inviting someone; they join them at once. The Leadership group cannot be removed and cannot be given another workspace — remove its people instead.

Administration · version 1.0.0

Your plan, limits and billing

Your organisation's plan, rate and limits, and where to find statements and invoices.

Your organisation's own plan, rate and limits are shown on this page in the console's help centre (Help in the console), where they are filled in for your organisation.

How usage is measured

Usage is counted in engineer-hours. Depending on your plan, an hour counts while an engineer is provisioned for you, or only while it is working on a story. Hours inside a free trial are never billed.

For the admins of your organisation.

Statements

Admins find the monthly statement under People, billing, activity, and can download it as a CSV file.

Administration · version 1.0.0

Plans, AI usage and your data

Your plan and what it includes, asking for a plan change, seeing what AI work will cost before it starts, the sample workspace, and exporting your organisation's data.

Plan and data in the console (Organisation section) is where your organisation's plan lives. Everyone in your organisation can read it; an admin makes changes.

Your plan

The page shows your plan, its state (active, free trial, grace period, or stopped), and every plan to compare with: what each includes and its limits (projects, people, files, AI jobs at a time, connections). List prices appear there once Yavaren publishes them; until then the page says Pricing on request.

AI usage is separate from the plan. Work that runs on Yavaren's AI keys is reserved against your AI budget before it starts and is billed at the published model prices. Work on your own AI key is never charged by Yavaren. Some plans include a small monthly AI allowance; the plan card says how much.

Asking for a plan change

An admin chooses Upgrade, Downgrade, Cancel the plan or Reactivate, confirms what the change does, and sends it. Yavaren applies it. Where your organisation has self-service on, a downgrade or a cancel applies at once, and an upgrade applies at once only when your payment is confirmed. A change that is still waiting can be withdrawn.

Nothing is ever deleted by a plan change. After a downgrade, work in a module your plan no longer includes becomes read-only. A cancelled plan stops new work and keeps everything readable and exportable; reactivating restores it. Billing follows your WeCan subscription.

What AI work will cost, before it starts

Before handing a story to an engineer you can ask what one job would reserve from your AI budget, and whether it fits right now (GET /v1/ai/budget/estimate?assignment_id=<project>). Nothing is reserved or charged by asking. If it does not fit, it says which budget is short (this month, today, the project, or your own) so an admin can raise it or ask Yavaren for more. A job is settled at what it actually used, never more than its reservation's ceiling.

The sample workspace

Add the sample workspace (admins) creates example content you can try things on: two knowledge pages, two requirements and a board with an epic and three stories, all marked (sample). No AI runs and nothing is charged. It is added once; a module that is switched off is skipped and named. Hand one sample story to an engineer when you want to see real AI work; that is reserved against your AI budget like any other.

Exporting your data

Export our data (admins) downloads everything your organisation keeps in Yavaren as one JSON file: projects, work items, knowledge pages and their versions, requirements, jobs and their results, approvals, support tickets (without Yavaren's internal notes), AI budget reservations, upload scans and your audit log. Credentials are never included (connections hold secret names only). Uploaded files are listed with their name, size and fingerprint; download each from its page.

When something goes wrong

An error message from the server ends with a short support reference. Quote it when you contact support (Help › Support): it lets Yavaren find exactly what happened.

Administration · version 1.0.0

Free trials and free credit

What a free trial or free credit includes and what happens when it ends.

Whether your organisation is in a free trial, and until when, is shown on this page in the console's help centre (Help in the console).

What a trial includes

A trial lets your organisation run a set number of engineers for a set number of days. Hours worked inside the trial are never billed.

What free credit includes

Free credit gives your organisation a number of engineer-hours at no charge instead of a number of days. It starts when you first sign in and lasts until its hours are used or its days pass, whichever comes first (unused hours expire). The hours are counted the way your plan counts them; hours inside a free trial never use credit up, and the oldest credit is used first. The strip above your work says how many hours are left and when unused ones expire. Hours covered by credit appear on your statement as "Free credit hours (not charged)".

When a trial or credit ends

Work that is running is finished. New work is refused until a rate is set for your organisation (on the WeCan platform: until a payment method is confirmed). Nothing is deleted.

Administration · version 1.0.0

Where your work runs

Where the engineers' work runs, what leaves your organisation, and the learning data you allow.

For the admins of your organisation.

Changing where work runs

Admins can ask for a different deployment (for example, runners in your own network) on the Deployment card. A person at Yavaren answers the request.

Learning data

Yavaren learns from finished work to improve how engineers work, at the level your organisation chose: from nothing at all to full content. Content is scrubbed of secrets before it is kept. The level is managed by Yavaren: the Learning data card shows what is recorded, where it goes and for how long; to ask for a change, use Services & support. (On an on-prem installation that gives this back to its customers, admins change it on the card.)

Administration · version 1.0.0

Cloud, on-prem and hybrid compared

The three ways to run Yavaren side by side: who runs what, where your data lives, what leaves your network, and how a new product is built and deployed in each.

Yavaren can be run three ways. Every feature works in all three; what changes is who runs each part and where your code and data are. The page Your setup shows which one you are on, with your current settings filled in.

You are on on-prem: your organisation runs Yavaren in its own environment.

Side by side

Yavaren cloud Hybrid runners On-prem
Who runs the control plane (console, API, job queue) Yavaren Yavaren You
Where engineers work on your code (the runners) Yavaren's runners Your network, calling out to Yavaren Your network
Where your projects, jobs, documents and logs are kept Yavaren cloud Yavaren cloud Your database and document store
Where your credentials are The secret store of Yavaren's runners Your own secret store Your own secret store
What reaches Yavaren Everything the platform needs to run your work Job results and redacted logs from your runners; never your credentials Depends on how the installation is linked (below)
Updates, backups, scaling, security patches Yavaren Yavaren for the control plane, you for the runners You (Yavaren publishes the releases)
Licence Not needed Not needed A signed licence from Yavaren
Paying Card or invoice Card or invoice Invoice, from the usage your installation reports

How an on-prem installation is linked to Yavaren

Connected Restricted Air-gapped
Licence Refreshed over the link Refreshed over the link A signed file you install
Updates Version check and signed corrections over the link The same A signed file you import
Usage for invoicing Sent monthly, without customer content The same A signed statement you send by hand
Learning data Sent at the level your organisation chose Kept here Kept here
Health heartbeat Versions, licence, component health, readiness, drift (never a secret value) and counts; counts and details can be switched off Versions, licence, component states and readiness counts only Off
Yavaren support acting on it Only allowed actions, signed by Yavaren, in a session your administrators approve, or with full remote management they consented to Only during a session your administrators opened Never over a link: signed diagnostics files your administrator imports by hand
Anything else Only what you switch on (summaries, mail relay) Nothing Nothing at all

A new product in each

Every step of a new product is the same in all three: Yavaren asks its questions before each phase, drafts the business brief with its diagrams, then the features and the stories; the people you named approve each step. Then it sets up the repository and the CI/CD pipeline, and deploys once an approver says so.

Step Yavaren cloud Hybrid runners On-prem
Questions, brief, diagrams, features, stories Drafted on Yavaren's runners Drafted on your runners Drafted on your runners; diagrams are drawn inside your installation
Repository Created with the access you give, on your repository host The same The same, on your repository host (cloud or self-hosted)
CI/CD pipeline Generated into your repository as a draft pull request a person merges The same The same
Deployment Runs in your own pipeline, with your own cloud identity, after an approver approves The same Runs in your pipeline on CI runners inside your network, to your Kubernetes or servers
Who holds cloud credentials Never Yavaren: your pipeline uses your identity The same The same

Moving from one to another

Moving is a step you take with Yavaren, not a switch. An administrator asks on the Deployment card; Yavaren answers and agrees the plan with you. For on-prem, work through the readiness checklist under Your setup first: where it runs, network, secret store, database, runner sizing and how it links to Yavaren.

Administration · version 1.0.0

Install Yavaren on your own servers, by clicks

Plan an on-prem installation in Your setup, run one command on your server, and a browser installer finishes every step. Air-gapped networks and upgrades work the same way.

Yavaren can run in your own environment (the on-prem edition). You do not need to edit a file to install it: you choose everything here, run one command on your server, and a browser installer on that server does the rest.

You are on an on-prem installation already. To upgrade it, an admin of your organisation opens the installation in the Yavaren portal and chooses Upgrade; the same browser installer does the upgrade on your server.

Before you start

1. Choose

Open Your setup › Install on your servers › Plan an installation and answer seven short steps: where it runs (one machine with Docker, or Kubernetes; air-gapped or not), the database (bundled or yours), where documents are kept, single sign-on and the HTTPS certificate, the runners and their size, and how Yavaren support may help (sessions you approve, or full remote management if your contract offers it). The last step shows your choices in plain words, the sizing they need and anything to fix.

The portal never asks for a password, a key or a token. You type those into the installer on your own server.

2. Run one command

You get one command. Copy it and run it on your server (or, for Kubernetes, on the computer with kubectl and helm). It works once, for two hours; New command makes another. It checks everything it downloads against checksums and Yavaren's signature before anything runs, then prints an address with a one-time code in it.

3. Click through

Open the address. The installer checks the machine, makes every secret (none is shown), sets up HTTPS, checks the database, the document storage and single sign-on, starts Yavaren, prepares the database, creates your first admin, connects to Yavaren, starts the runners and runs the readiness checks. Each step can be retried; if anything stops, run the same command again and it carries on. Download diagnostics gives Yavaren support what they need, with secrets removed.

The progress shows here too, step by step, under the installation.

Air-gapped networks

Choose Air-gapped. Instead of a command with a code you get three downloads (the offline bundle, the signed manifest and the offline licence file) and one command to run from the bundle inside your network. The same browser installer opens. Nothing is sent anywhere.

Upgrades

When a newer release is out, the installation shows Upgrade to …. You get a new one-time command (or files, air-gapped); the installer backs up the bundled database, switches the version, prepares the database and runs the checks. Your settings and secrets are kept.

Administration · version 1.0.0

Upgrades of your on-prem installation

How Yavaren upgrades your on-prem installation, what you approve and when, your maintenance window, following an upgrade stage by stage, and upgrading an air-gapped installation.

Yavaren publishes new releases with their notes. Your installation learns about them over the Cloud Link and shows them on Platform admin › System › Upgrades. Nothing on your installation changes until the support mode you chose allows it.

What happens, by support mode

Your support mode What happens
Support sessions (the default) Yavaren sends an upgrade request: the version, the release notes, and a deadline when it is a security release. Your administrators are told by e-mail and see it on the Upgrades page. Choose Upgrade now, or a time that suits you, or postpone it. Until you do, nothing is upgraded. Your approval allows only that release's versions, from the time you chose
Full remote management Yavaren upgrades your installation by itself, but only inside the maintenance window you set on the same page (for example Saturday 02:00 for four hours). Without a window, at any time
Air-gapped No request arrives. Upgrade with the next offline bundle (the installer's upgrade mode), then use Export the upgrade report on the Upgrades page and send the file to Yavaren

A security release has a date it is due by. You can postpone it up to that date, not past it. As the date comes near, every administrator sees a banner. Even past the date your installation is never upgraded without your approval: Yavaren contacts you instead.

During an upgrade

The Upgrades page shows the upgrade stage by stage: downloading, verifying (the images Yavaren signed), backing up the database, migrating, switching, health check. If the new version does not become healthy, the previous one is put back by itself, and the page says why, with the last lines of the step that failed. The kill switch on Support access stops everything, an upgrade you approved included; an upgrade that had already switched versions is put back.

Your maintenance window

Add one or more weekly slots (days, a start time, how long) in your time zone, and a note for Yavaren if you like. Yavaren staff see your window. It decides when a fully managed installation is upgraded; an upgrade you approve runs at the time you chose instead.

History

Everything Yavaren asked for, who asked, what allowed it (your approval, a support session, or full management) and how it ended is listed on the page and in your audit log.

Administration · version 1.0.0

Yavaren support and your on-prem installation

What Yavaren support can see of an on-prem installation, what it can do and only when you allow it, how to approve or end a support session, and the kill switch.

Yavaren support never connects to your installation. Your installation calls out to Yavaren (the Cloud Link) and asks whether support has requested anything. Your administrators decide what is allowed on Platform admin › System › Support access.

What Yavaren can see

While your installation is linked, Yavaren support sees its health: the version, the licence, whether the database, document store, audit chain and runners are healthy, how long work waits, the readiness checks, when the certificate ends, and where your configuration differs from what Yavaren recommends. A secret is never shown, only whether it is set. In restricted mode Yavaren sees only versions, the licence, whether each part is healthy and how many readiness checks pass.

What Yavaren can do, and when

Only a short list of actions, each signed by Yavaren and checked by your installation before it runs: collect a diagnostics bundle, fetch recent log lines of every part of the control plane and, if asked, of your runners (credentials removed; never a job's log), run the readiness checks or a connection test, change one of a list of operating settings, restart the link or the control plane gently, restart runners (one, a pool or all, a few at a time so work goes on; a job in hand finishes or is handed back and retried), upgrade to a published release (rolled back on its own if the new version is not healthy), rotate the link's token, and turn maintenance mode on or off. Never a command, code or a file to run. Your runners are never reached from outside: they pick up a restart from their own next call to your control plane.

Your choice What happens
Support sessions (the default) Yavaren asks for a session: which actions, for how long, and why. An administrator approves (maybe shorter, or fewer actions), or denies it. You can open one yourself during a support call, and revoke any session at once
Full remote management Offered only if your contract with Yavaren includes it, and only after one of your administrators allows it here. Yavaren can then run the listed actions without asking each time. Withdraw it at any time: from that moment every action needs a session again
Kill switch Stops everything at once: nothing runs, every session ends, and your installation stops asking Yavaren for work. An upgrade Yavaren started stops too, and if it had already switched versions, your previous version is put back. Health is still sent while you stay linked

Everything Yavaren asked for, who asked, why, whether it ran and its result is listed on the same page and in your audit log. Your own administrators can restart runners themselves on Platform admin › Fleet › Runners, and read the recent log lines of every part of the installation on System › Logs.

An air-gapped installation sends and receives nothing. Yavaren support can give your administrator a signed file (diagnostics only); importing it on Support access runs it and gives you a result file to send back. You can also download a support bundle from System › Support bundle and send it yourself.

Administration · version 1.0.0

Release verification and your licence binding

How an on-prem installation checks that it runs the files Yavaren released, and how its licence is bound to it. What happens after a move or a restore.

Your on-prem installation checks two things on its own: that it runs exactly what Yavaren released, and that its licence belongs to it. Neither check ever deletes anything.

The files Yavaren released

Each Yavaren image carries a list of all its files with their fingerprints (SHA-256), signed by Yavaren. Every time the control plane or a runner starts, it checks the signature and then every file. This takes a fraction of a second.

The installer also checks the images themselves before it starts them. It uses cosign when it is installed. Otherwise it checks Yavaren's signature of the image fingerprints, and no extra tool is needed. For an offline bundle loaded by hand, run ./load-images.sh --trust <the release key Yavaren gave you> and it checks the images too.

Your licence belongs to this installation

When the installation first starts, it records its licence together with a fingerprint of this installation. The fingerprint is made from the installation's own id and a random key. No hardware is used, so moving the virtual machine or restoring a backup of the same installation changes nothing.

If the licence is used somewhere it was not issued for (for example, copied to a second installation):

After a move or a restore

  1. Open System › Cloud Link › Release integrity and licence binding and copy This installation's fingerprint (it starts with fp_).
  2. Send it to Yavaren support with a short reason.
  3. Yavaren issues your licence again, bound to the new fingerprint: - Connected: it arrives at the next licence refresh. You can click Check now on the Cloud Link page. - Air-gapped: you receive a licence file. Install it under Install a licence file.

Licences issued before this check existed keep working. They are treated as belonging to the installation that first starts with them.

Administration · version 1.0.0

How Yavaren is doing

Yavaren's daily check of its own results, what it fixed by itself, and what needs you.

Yavaren checks its own results every day. It compares them with the week before and tells you what got worse.

What you see

Open How Yavaren is doing in the navigation. It shows these parts:

A measure with too few jobs says "too few" rather than guessing. - What got worse. A measure counts as worse only when the change is both large and unlikely to be chance. Next to it, Yavaren lists what changed in the same period: a new prompt version, an agent, a lesson it learned. Those are the first things to look at; they are not proof of the cause. - Fixed by itself. These jobs failed because of something outside the work, and a retry fixed them. Examples: a network interruption, a busy package registry, a runner that stopped. - Needs a person. These jobs failed because of the work itself or a setting, such as failing tests, an unclear story or a refused credential. Each shows what went wrong and what to do next. - What Yavaren learned. The lessons it formed from your own work, with a link to the full list.

What Yavaren does on its own, and what it never does

Your choices

An admin can switch automatic retries off. An admin can also allow a retry after an agent's rate limit or time-out to use another agent; this applies only to engineers on Yavaren's licence. Admins choose whether they get an e-mail when a result gets worse, or when the same failure keeps happening. A member can run a check now, and can cancel a retry that is still waiting.

Administration · version 1.0.0

What Yavaren has learned

Lessons Yavaren learns from your own work and uses in your next jobs; see the evidence, switch them off, edit or revert them.

Yavaren learns from your work the way a new team member would. When the same thing goes wrong again and again, it writes itself a short lesson and uses it in your next jobs straight away. Examples:

Lessons stay inside your organisation. They never apply to another customer.

Where lessons come from

A lesson needs repeated evidence: the same thing seen at least three times, in at least two different jobs, within a month. The evidence comes from:

A lesson applies where the evidence came from: one repository, a stack, a project or the whole organisation. When the same lesson appears in several repositories, it also applies more widely.

What you see

Open What Yavaren has learned in the navigation. You see:

Under a job's Details you see the lessons that job was given.

What you can do

Managed by Yavaren. On Yavaren cloud, lessons and the learning level are looked after by the Yavaren team: you can read every lesson, its evidence and its effect, and ask for a change through Services & support. The actions below are the ones the team takes for you. (An on-prem installation may give them back to its customers' own people.)

Where your organisation manages its own lessons, members can:

Admins can also pause learning for the whole organisation.

How Yavaren checks itself

Yavaren keeps measuring each lesson. A lesson that does not help is retired automatically, with the reason. So is a lesson that no job has used for a long time.

A lesson is advice for the coding assistant and nothing more. It never changes your rules, the checks that run, or what the assistant may do. Text that reads like an instruction or a command is refused.

Your data

Your learning level applies. At off, Yavaren records nothing and gives no lessons. Only at full does it keep short excerpts of comments and errors, with credentials removed. Changes to Yavaren's own instructions for all customers are made only by Yavaren staff, after review.

Administration · version 1.0.0

Giving feedback

How to rate finished work and what happens with your feedback.

Every finished job, brief, feature and story can be rated from one to five, with a category and a comment. One person gives one rating per piece of work and can change it later.

Your feedback is read with the work it is about, and it is one of the signals Yavaren uses to decide which changes to how engineers work are kept. It is never shown to other organisations.

Administration · version 1.0.0

API reference

Every API route your organisation can call, who may call it, and the data it takes and returns.

Everything in the console can also be done through the API. Send an API key as Authorization: Bearer <key>; the key's role decides what it may do, exactly as for a person.

Every route your organisation can call, who may call it and the data it takes and returns is listed in the console's help centre (Help, API reference), generated from the version you run.

Administration · version 1.0.0

What's new

Dated changes to what you can do, newest first.

The dated list of changes of the version you run is in the console's help centre (Help, What's new). This guide describes the version printed at the bottom of each page.

Stack conventions · version 1.0.0

Stack conventions

The languages and frameworks Yavaren works in, and the conventions each one follows.

Each repository in a project has a stack. For every stack, the engineer follows a stack profile: principles, naming and structure conventions, patterns to use and to avoid, a review checklist, and the quality checks it runs when your repository has them. Your repository's own conventions and tool configuration always come first.

Stack Used for Conventions
Android (Kotlin, Jetpack, Compose) android Read
Angular angular Read
Bicep (Azure) added by file type Read
C (CMake) c-cmake Read
C++ (CMake) cpp-cmake Read
Databricks (PySpark, Delta Lake, Asset Bundles) databricks Read
dbt Core dbt Read
Django django Read
.NET (C# / ASP.NET Core) dotnet Read
Elixir (and Phoenix) elixir Read
Embedded firmware (C/C++, PlatformIO) embedded Read
Flutter (Dart) flutter Read
Go go Read
Java (Maven / Gradle) java-maven, java-gradle Read
Kotlin kotlin Read
Laravel laravel Read
Next.js (App Router) nextjs Read
Node.js (server-side JavaScript) node Read
PHP php Read
Playwright end-to-end tests (TypeScript) playwright Read
Playwright end-to-end tests (.NET, NUnit) playwright-dotnet Read
Python python Read
Ruby on Rails rails Read
React react Read
ROS 2 (robotics) ros2 Read
Ruby ruby Read
Rust rust Read
Salesforce (Apex, LWC, metadata) salesforce, salesforce-prod Read
Scala scala Read
Snowflake (SQL, Snowpark, schemachange) snowflake Read
SQL databases (migrations, procedures, views) sql Read
Swift swift Read
Terraform and OpenTofu added by file type Read
TypeScript typescript Read
Vue 3 vue Read

Stack conventions · version 1.0.0

Android (Kotlin, Jetpack, Compose)

Android apps in Kotlin with Jetpack Compose, ViewModels and coroutines, built with Gradle and tested on the JVM and on devices.

Android apps in Kotlin with Jetpack Compose, ViewModels and coroutines, built with Gradle and tested on the JVM and on devices.

Used for: android.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
android-lint lint Android Lint no
detekt static detekt no
ktlint lint ktlint (Gradle plugin) no
spotless-gradle format spotless no
gradle-check test gradle check no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Angular

Angular applications with standalone components, signals and OnPush change detection, tested with TestBed and component harnesses.

Angular applications with standalone components, signals and OnPush change detection, tested with TestBed and component harnesses.

Used for: angular.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
ng-lint lint ng lint no
tsc typecheck tsc no
eslint lint eslint no
biome lint biome no
prettier format prettier no
npm-audit security npm audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Bicep (Azure)

Azure infrastructure in Bicep, including the subscription-scope infra/shared and infra/app deployments Yavaren generates for new applications.

Azure infrastructure in Bicep, including the subscription-scope infra/shared and infra/app deployments Yavaren generates for new applications.

Added to any stack when the change touches: **/*.bicep, **/*.bicepparam.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
bicep-build static az bicep build no
bicep-lint lint az bicep lint no
checkov-bicep security checkov no
bicep-format format az bicep no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

C (CMake)

Modern C (C11/C17) libraries, services and system software built with CMake, tested with CTest, under sanitizers and static analysis.

Modern C (C11/C17) libraries, services and system software built with CMake, tested with CTest, under sanitizers and static analysis.

Used for: c-cmake.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
clang-format format clang-format no
clang-tidy static clang-tidy no
cppcheck static cppcheck no
sanitizer-tests test ctest (ASan/UBSan) no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

C++ (CMake)

Modern C++ (17/20/23) libraries and applications built with CMake, tested with CTest and a unit-test framework, under sanitizers.

Modern C++ (17/20/23) libraries and applications built with CMake, tested with CTest and a unit-test framework, under sanitizers.

Used for: cpp-cmake.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
clang-format format clang-format no
clang-tidy static clang-tidy no
cppcheck static cppcheck no
sanitizer-tests test ctest (ASan/UBSan) no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Databricks (PySpark, Delta Lake, Asset Bundles)

Databricks code: PySpark jobs and libraries, Lakeflow (Delta Live Tables) pipelines, notebooks kept as .py or .sql source, Databricks Asset Bundles (databricks.yml), Delta Lake tables and Unity Catalog objects; tested locally with pytest and a local SparkSession.

Databricks code: PySpark jobs and libraries, Lakeflow (Delta Live Tables) pipelines, notebooks kept as .py or .sql source, Databricks Asset Bundles (databricks.yml), Delta Lake tables and Unity Catalog objects; tested locally with pytest and a local SparkSession.

Used for: databricks.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
ruff lint ruff no
ruff-format format ruff no
mypy typecheck mypy no
pyright typecheck pyright no
databricks-bundle-validate static databricks no
sqlfluff lint sqlfluff no
pip-audit security pip-audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

dbt Core

dbt Core projects (dbt_project.yml) on Snowflake, Databricks, BigQuery, Redshift and PostgreSQL: staging, intermediate and mart models, sources, seeds, snapshots, macros, data tests, unit tests and model contracts.

dbt Core projects (dbt_project.yml) on Snowflake, Databricks, BigQuery, Redshift and PostgreSQL: staging, intermediate and mart models, sources, seeds, snapshots, macros, data tests, unit tests and model contracts.

Used for: dbt.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
sqlfluff lint sqlfluff no
dbt-profiles-credentials security grep no
pip-audit security pip-audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Django

Django web applications and APIs (Django 4.2 LTS to 5.x/6.x), on top of the Python profile.

Django web applications and APIs (Django 4.2 LTS to 5.x/6.x), on top of the Python profile.

Used for: django.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
django-missing-migrations static django makemigrations no
django-check static django system checks no
djlint lint djlint no
ruff lint ruff no
ruff-format format ruff no
black format black no
mypy typecheck mypy no
pyright typecheck pyright no
bandit security bandit no
pip-audit security pip-audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

.NET (C# / ASP.NET Core)

C# and .NET 8+ services, APIs and libraries (ASP.NET Core, EF Core), built with nullable reference types and analyzers on.

C# and .NET 8+ services, APIs and libraries (ASP.NET Core, EF Core), built with nullable reference types and analyzers on.

Used for: dotnet.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
dotnet-format format dotnet format no
dotnet-build-warnaserror static dotnet build (analyzers) no
nuget-vulnerable security dotnet list package no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Elixir (and Phoenix)

Elixir applications and libraries on OTP, including Phoenix and Ecto, tested with ExUnit.

Elixir applications and libraries on OTP, including Phoenix and Ecto, tested with ExUnit.

Used for: elixir.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
mix-format format mix format no
mix-compile-warnings static mix compile no
credo lint credo no
dialyzer typecheck dialyxir no
sobelow security sobelow no
deps-audit security mix_audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Embedded firmware (C/C++, PlatformIO)

Firmware for microcontrollers and edge devices (ESP32, STM32, nRF, RP2040 and more) in C and C++ with PlatformIO: hardware-independent logic unit-tested on the host, static analysis, and the memory, timing and safety rules of code that runs on devices.

Firmware for microcontrollers and edge devices (ESP32, STM32, nRF, RP2040 and more) in C and C++ with PlatformIO: hardware-independent logic unit-tested on the host, static analysis, and the memory, timing and safety rules of code that runs on devices.

Used for: embedded.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
clang-format format clang-format no
pio-check static pio check (cppcheck) no
cppcheck static cppcheck no
native-sanitizer-tests test pio test (native, ASan/UBSan) no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Flutter (Dart)

Flutter apps in Dart with null safety, state managed through the repository's chosen approach, tested with unit, widget and integration tests.

Flutter apps in Dart with null safety, state managed through the repository's chosen approach, tested with unit, widget and integration tests.

Used for: flutter.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
flutter-analyze lint flutter analyze no
dart-format format dart format no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Go

Go 1.22+ services, command-line tools and libraries, using the standard library first and tested with the testing package.

Go 1.22+ services, command-line tools and libraries, using the standard library first and tested with the testing package.

Used for: go.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
gofmt format gofmt no
go-vet static go vet no
golangci-lint lint golangci-lint no
staticcheck static staticcheck no
govulncheck security govulncheck no
go-test-race test go test no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Java (Maven / Gradle)

Java 17+ services and libraries built with Maven or Gradle (Spring Boot or plain Java), tested with JUnit 5.

Java 17+ services and libraries built with Maven or Gradle (Spring Boot or plain Java), tested with JUnit 5.

Used for: java-maven, java-gradle.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
checkstyle-maven lint checkstyle no
checkstyle-gradle lint checkstyle no
spotless-maven format spotless no
spotless-gradle format spotless no
spotbugs-maven static spotbugs no
pmd-maven static pmd no
dependency-check-maven security OWASP dependency-check no
dependency-check-gradle security OWASP dependency-check no
maven-verify test mvn verify no
gradle-check test gradle check no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Kotlin

Kotlin on the JVM (services and libraries) with coroutines, built with Gradle Kotlin DSL and tested with JUnit 5 or kotlin.test.

Kotlin on the JVM (services and libraries) with coroutines, built with Gradle Kotlin DSL and tested with JUnit 5 or kotlin.test.

Used for: kotlin.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
detekt static detekt no
ktlint lint ktlint (Gradle plugin) no
spotless-gradle format spotless no
gradle-check test gradle check no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Laravel

Laravel 11+ applications: Eloquent, queues, Blade or Inertia front ends, validated with Form Requests and tested with Pest or PHPUnit.

Laravel 11+ applications: Eloquent, queues, Blade or Inertia front ends, validated with Form Requests and tested with Pest or PHPUnit.

Used for: laravel.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
pint format pint no
phpstan static phpstan no
psalm static psalm no
php-cs-fixer format php-cs-fixer no
phpcs lint PHP_CodeSniffer no
composer-audit security composer audit no
composer-validate lint composer validate no
php-syntax static php no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Next.js (App Router)

Next.js App Router applications with Server Components, Server Actions and route handlers, in TypeScript.

Next.js App Router applications with Server Components, Server Actions and route handlers, in TypeScript.

Used for: nextjs.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
eslint lint eslint no
prettier format prettier no
tsc typecheck tsc no
biome lint biome no
npm-audit security npm audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Node.js (server-side JavaScript)

Node.js services, command-line tools and libraries in JavaScript, tested with the repository's runner (node:test, Vitest, Jest).

Node.js services, command-line tools and libraries in JavaScript, tested with the repository's runner (node:test, Vitest, Jest).

Used for: node.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
eslint lint eslint no
prettier format prettier no
biome lint biome no
npm-audit security npm audit no
tsc typecheck tsc no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

PHP

Modern PHP 8.2+ applications and libraries with Composer, strict types and static analysis, tested with PHPUnit or Pest.

Modern PHP 8.2+ applications and libraries with Composer, strict types and static analysis, tested with PHPUnit or Pest.

Used for: php.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
phpstan static phpstan no
psalm static psalm no
php-cs-fixer format php-cs-fixer no
phpcs lint PHP_CodeSniffer no
composer-audit security composer audit no
composer-validate lint composer validate no
php-syntax static php no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Playwright end-to-end tests (TypeScript)

End-to-end and component tests with Playwright Test in TypeScript: role-based locators, web-first assertions and isolated parallel tests.

End-to-end and component tests with Playwright Test in TypeScript: role-based locators, web-first assertions and isolated parallel tests.

Used for: playwright.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
playwright-list test playwright no
npm-audit security npm audit no
playwright-no-fixed-waits lint grep no
playwright-trace-on-retry lint grep no
tsc typecheck tsc no
eslint lint eslint no
biome lint biome no
prettier format prettier no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Playwright end-to-end tests (.NET, NUnit)

End-to-end tests with Playwright for .NET (NUnit, MSTest or xUnit): role-based locators, auto-waiting assertions and parallel-safe tests.

End-to-end tests with Playwright for .NET (NUnit, MSTest or xUnit): role-based locators, auto-waiting assertions and parallel-safe tests.

Used for: playwright-dotnet.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
playwright-dotnet-no-fixed-waits lint grep no
dotnet-format format dotnet format no
dotnet-build-warnaserror static dotnet build (analyzers) no
nuget-vulnerable security dotnet list package no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Python

Modern Python 3.10+ services, libraries and scripts, typed and tested with pytest.

Modern Python 3.10+ services, libraries and scripts, typed and tested with pytest.

Used for: python.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
ruff lint ruff no
ruff-format format ruff no
black format black no
mypy typecheck mypy no
pyright typecheck pyright no
bandit security bandit no
pip-audit security pip-audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Ruby on Rails

Ruby on Rails 7/8 applications following the Rails way: Active Record, Hotwire, background jobs and built-in testing.

Ruby on Rails 7/8 applications following the Rails way: Active Record, Hotwire, background jobs and built-in testing.

Used for: rails.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
brakeman security brakeman no
zeitwerk-check static rails zeitwerk no
rubocop lint rubocop no
standardrb lint standard no
bundler-audit security bundler-audit no
sorbet typecheck sorbet no
steep typecheck steep no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

React

React 18/19 user interfaces with function components and hooks, tested through the DOM with Testing Library.

React 18/19 user interfaces with function components and hooks, tested through the DOM with Testing Library.

Used for: react.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
eslint lint eslint no
prettier format prettier no
tsc typecheck tsc no
biome lint biome no
npm-audit security npm audit no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

ROS 2 (robotics)

Robot software on ROS 2 (Jazzy or Humble): C++ (rclcpp) and Python (rclpy) packages built with colcon and ament, with launch files, parameters, simulation tests and the safety rules of software that moves hardware.

Robot software on ROS 2 (Jazzy or Humble): C++ (rclcpp) and Python (rclpy) packages built with colcon and ament, with launch files, parameters, simulation tests and the safety rules of software that moves hardware.

Used for: ros2.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
clang-format format clang-format no
ruff lint ruff no
ament-lint lint ament_lint (cpplint, xmllint, copyright) no
rosdep-check static rosdep no
osv-scanner security osv-scanner no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Ruby

Ruby 3.x gems, scripts and services, styled with RuboCop or Standard and tested with RSpec or Minitest.

Ruby 3.x gems, scripts and services, styled with RuboCop or Standard and tested with RSpec or Minitest.

Used for: ruby.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
rubocop lint rubocop no
standardrb lint standard no
bundler-audit security bundler-audit no
sorbet typecheck sorbet no
steep typecheck steep no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Rust

Rust 2021/2024 crates (services, command-line tools and libraries) built with Cargo, linted with Clippy and tested with cargo test.

Rust 2021/2024 crates (services, command-line tools and libraries) built with Cargo, linted with Clippy and tested with cargo test.

Used for: rust.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming

Performance

Security

Structure

Testing

Review checklist

Quality checks (run when your repository has the tool configured)

Check Kind Tool Blocks the pull request
cargo-fmt format rustfmt no
cargo-clippy lint clippy no
cargo-deny security cargo-deny no
cargo-audit security cargo-audit no
cargo-doc static rustdoc no
gitleaks security gitleaks no

Stack conventions · version 1.0.0

Salesforce (Apex, LWC, metadata)

Apex classes and triggers, Lightning Web Components and source-format metadata in a Salesforce DX project.

Apex classes and triggers, Lightning Web Components and source-format metadata in a Salesforce DX project.

Used for: salesforce, salesforce-prod.

Principles

Conventions

Accessibility

Concurrency

Dependencies

Documentation

Errors

Logging

Naming