Notes from the work

One email when a tutorial or migration write-up goes live. Nothing else, and an unsubscribe link in every email.

LeanZero

Two people in Romania doing Atlassian migrations, Forge apps and practical AI work for teams that would rather talk to the person doing the job. Most of what we learn ends up on this site.

Services

  • Atlassian migrations
  • Atlassian FastShift
  • Atlassian maintenance
  • Forge app development
  • AI development consultation

Topics

  • Jira
  • Jira Service Management
  • Confluence
  • Bitbucket
  • Atlassian Forge
  • Cloud Migration
  • Local AI
  • AI Coding
  • Certifications
  • Atlassian Team
  • All topics

Company

  • Blog
  • Tutorials
  • Contact

Community

  • Join Discord
  • Support this site

© 2026 LeanZero. All rights reserved.

Privacy policyTerms of service24/7 SupportTrust centerSecurityDPALegal notice
  1. Home
  2. Blog
Knowledge Base

Atlassian insights & tutorials

Real Atlassian solutions to real problems — no fluff, no SEO spam.

Read the latestFollow the tutorials
JiraConfiguration, workflows and fixes from real projectsLocal AIModels and agents running on your hardwareAI codingCoding tools and workflows tested in practice

Articles 15

All topicsAI CodingAtlassian ForgeAtlassian TeamBitbucketCertificationsCloud MigrationCogniRunnerConfluenceCost SlasherJiraJira Service ManagementLeanZero ManagementLocal AISentinel Vaultgoose Local Edition
Six pieces of owner feedback, and what each one actually turned out to be
ArticleSentinel VaultConfluence

Six pieces of owner feedback, and what each one actually turned out to be

"The request stays available even if I approve it" was a missing else branch. "I cannot tell which image is which" was a 5 MB base64 preview we had hidden to save bandwidth. What users report and what is wrong are rarely the same sentence.

Gabriela PerdumSep 14, 202611 min read

More articles

v0.4 of our Atlassian model: 21 of 25 apps compile, and the loop that was a diagram
ArticleLocal AIAtlassian Forge

v0.4 of our Atlassian model: 21 of 25 apps compile, and the loop that was a diagram

Three days after v0.3, the Qwen3.8-27B we teach Forge went from 12 of 25 compiling apps to 21 of 25. On the way our own release rule rejected it, correctly by its own text, over a 40-character window repeated 13 times at 32k context. The window was a line of box-drawing characters in an ASCII diagram. Here is what changed, what the metric got wrong, and what we changed so it cannot happen the same way again.

Mihai PerdumSep 13, 202612 min read
I taught a 27B model to write Forge apps. As far as I can find, nobody had done that before
ArticleLocal AIAtlassian Forge

I taught a 27B model to write Forge apps. As far as I can find, nobody had done that before

Qwen3.8-27B knows almost nothing about Atlassian Forge: ask it for an app and it invents a manifest format and imports packages that do not exist. Over four days on one Mac Studio I trained it until 14 of 25 manifests passed Atlassian's own validator and 12 of 25 apps compiled, from zero. The weights are public. Here is what it is, what it is not, and why I think it is a first.

Mihai PerdumSep 10, 202611 min read
CogniRunner 3.3.0: it no longer waits for a transition
ArticleCogniRunnerJira

CogniRunner 3.3.0: it no longer waits for a transition

Until this release CogniRunner could only act when an issue crossed a workflow transition. 3.3.0 adds the two other ways an automation has always needed to run — react to an event, or run on a schedule — and a REST API that provisions both as JSON. Here is what each one actually does, what it refuses to do, and why the guard rails are shaped the way they are.

Gabriela PerdumSep 9, 202614 min read
CogniRunner 3.1.0: real Jira workflow conditions
ArticleCogniRunnerJira

CogniRunner 3.1.0: real Jira workflow conditions

For a year our workflow conditions evaluated a constant and gated nothing. 3.1.0 replaces that constant with ten checks that Jira runs itself. Here is what shipped, what I measured against a live Jira, and how it compares to what else is on the Marketplace.

Gabriela PerdumAug 24, 202617 min read
LeanZero Management: the Jira dependency that actually moves dates
ArticleAtlassian ForgeJira

LeanZero Management: the Jira dependency that actually moves dates

A blocks link in Jira records a relationship. On Free and Standard it reschedules nothing. Here's the engine we put behind it, the required-start rule that's easy to get subtly wrong, and what it still can't do.

Gabriela PerdumAug 13, 202612 min read
Previous
Page2of 2
Next

Found my advice helpful?

If I helped you solve something for free, coffee money is always appreciated (but never expected).

Buy Me a Coffee

Join the community

Join the community to ask questions, share your work, and connect with other professionals.

Join Discord

Recent writings

View all
LeanZero's first year: four Forge apps on the Atlassian Marketplace
ArticleCogniRunner

LeanZero's first year: four Forge apps on the Atlassian Marketplace

Mihai Perdum9 min read
“This app might stop working soon”: what admins do before Connect end of support
ArticleJira

“This app might stop working soon”: what admins do before Connect end of support

Gabriela Perdum14 min read
Find inactive users in Jira and Confluence: the free way, and the Cost Slasher beta
ArticleCost Slasher

Find inactive users in Jira and Confluence: the free way, and the Cost Slasher beta

Mihai Perdum11 min read
Atlassian license management by prompt: what CogniRunner's Jira AI agents can do now
ArticleCogniRunner

Atlassian license management by prompt: what CogniRunner's Jira AI agents can do now

Mihai Perdum17 min read
Atlassian Team '26 Europe on demand: the keynotes and sessions worth watching
ArticleAtlassian Team

Atlassian Team '26 Europe on demand: the keynotes and sessions worth watching

Mihai Perdum7 min read