Build1 publisher3 min readPublished
A rank-32 LoRA on one Mac Studio takes Forge manifests from 0 of 25 to 14 of 25
Atlassian's own validator did the grading, on 25 app briefs, on the same workstation that trained the adapter. Anyone reusing the pass rate needs briefs that look like those 25.
The Engineer · Build desk

What happened
- Weights for the Forge-tuned Qwen3.8-27B are on Hugging Face under Apache-2.0 in five artefacts, and a 9B member of the family was published the same morning as the write-up.
- On an Atlassian identifier probe, the untouched base got platform-specific names right 15 percent of the time and the tuned model reached 69 percent.
- Hugging Face has carried a model called WizardLM-2-7B-Atlassian since May 2024, but only a GGUF re-quantisation survives, its source repository is gone and its card does not describe the training data.
- The training sources include twelve Forge apps LeanZero wrote, six Atlassian OpenAPI specifications, 1,400 vetted question-answer pairs and 220 public Developer Community threads.
Compiled by The EngineerSomething wrong?How this is made
Why it matters
- capability A shop with one 96 GB Mac Studio can budget a platform-specific model in machine-days, without a GPU cluster reservation or a vendor tuning service in the loop.
- constraint The 4-bit artefact was never re-scored on the app-writing tasks, so anyone quantising further to fit smaller hardware runs a model with no published pass rate.
- decision The recommended setting differs by task, thinking on for questions and off for code generation, so a harness that uses one template for both is choosing against the author's instruction.
- precedent Publishing base-versus-tuned scores on the platform vendor's own validator sets a bar that Atlassian-named uploads with undocumented training data cannot clear.
Two gates produced the app-writing numbers, and they check different things. Atlassian's validator checks a manifest against the platform's schema. The TypeScript compiler checks that the code builds. The untouched base got 0 of 25 briefs past the validator; tuned, it got 14 [4]. Complete apps that also compile went from 0 of 25 to 12 [5]. If the compiling apps are a subset of the accepted manifests, two briefs yielded a manifest Atlassian would take and code that would not build [2]. Eleven yielded no manifest the validator would accept at all [3]. "It is a strong assistant, not a compiler," the author wrote [8].
Before tuning, the base invented a manifest format and imported packages that do not exist [11]. That failure mode is what makes a schema validator a useful scorer: it catches confident invention. It grades the manifest against the schema; whether the app does what the brief asked for goes ungraded.
For 12 of 25, which is 48 percent [1], to mean anything against your own backlog, your briefs have to resemble his 25. And you have to accept schema acceptance plus a clean build as the definition of done. The training mix also included the model's own generated apps, kept only when they passed the validator, the allow-list and the TypeScript compiler [19]. The post does not disclose whether the 25 briefs were held out of that mix [5]. Because that filtering used the same gate that later scores the model, 14 of 25 is the best case for briefs like his.
The training cost is the part any team can check against its own hardware. Rank-32 LoRA, frozen 8-bit base, 26 hours across three kept rounds, on a single Mac Studio M3 Ultra with 96 GB [6]. That averages under nine hours a round [4]. Only the adapter trains; the base stays frozen and quantised. Every round, including the one that was rejected, is published in the ledger [7].
The author said he wanted to call it the first ever Atlassian-trained model in the title, searched before he did, and found that it is not true [13]. Since late 2025 there have been several small Jira fine-tunes, including a 0.6B LoRA for tool-calling trained on synthetic conversations and an adapter on Qwen2.5-7B named for JQL with an undocumented training set [15]. Atlassian says it hosts fine-tuned open models inside its own VPC, and the author found no released weights [16]. What he will defend is narrower than the title he wanted: first open-weights model trained to write Forge apps, and first Atlassian-tuned model released with base-versus-tuned evidence on Atlassian's own validator [12]. "If someone shows me a prior Forge model, I will update this paragraph," he wrote [17].
What to watch
- Whether the new 9B member gets scored on the same 25 briefs, and whether the 4-bit artefact is re-scored on app writing.
- A prior Forge-trained model surfacing on Hugging Face or GitHub, which the author says would send him back to the novelty paragraph.
- Whether Atlassian releases weights for any of the fine-tuned open models it says it runs inside its own VPC.