Cloud baseline
deepseek-v4.1-flash — 0.3354 on Forge 1.0
deepseek/deepseek-v4.1-flash · scorer forge-1.0
Forge 1.0 was frozen on 9 October 2026 and accepts no new runs; Forge 2.0 is its successor. The original results contained scorer faults. Corrections made from saved evidence on 15 October are dated on the affected run pages, with both original and corrected scores and the reason for the change. They reuse the original builds and observations; no benchmark or model was rerun, and the original inference charges remain. Uncorrected results retain known limitations: the top five original scores, 0.945 to 0.977, were too close to reliably rank the strongest models; two hourly-job tests missed Jira reads performed by a queue worker; and the old linter accepted an entity index with two range attributes that Forge refuses. Those remaining faults are not silently treated as fixed. Consult each run's correction note when comparing historical results. Forge 2.0 has separate results and a different task.
- Overall
- 0.3354
- Benchmark
- Forge 1.0
- Model build
- 13m 26s
Recorded inference cost
At least $0.16
From the saved OpenRouter generation billing summary (137 recorded requests). This is a lower bound; the billing record is incomplete. Whether auxiliary model calls were included was not retained. Scoring reuses the saved build; this amount describes the original inference spend.
- The saved native billing amount is a lower bound.
- Saved usage reconciliation is incomplete.
- Auxiliary-call inclusion was not retained in this saved record.
Tier breakdown
Scoring detail
How this score was built
Per-test scorer output, as posted by the app. Expand a section to inspect its tests.
Correctness combines the lowest score for each test across the scoring fixtures; economy measurements use their mean. The combined result can therefore be lower than every individual fixture’s final score. Critical defects reduce the weighted result before any score cap applies.
Earned credit before admission
(0.88 × 0.5866 core + 0.12 × 0.61 gate × 0.58 excellence) × 0.6000 critical = 0.3354
Critical defects compound a multiplier on the whole score (pre-severity 0.5589):
b_comment_exactly_once: no additional penalty (vacuous:precondition: >= 1 comment POST); duplicate side effect on a customer's Jira.
The core (88% of the total) is the weighted mean of the nine measured tiers. The last 12% is the excellence slice: it unlocks in proportion to the perfection conditions below (11 of 18 met here), then pays out at the excellence tier's own measured mean. Core 0.5162 + excellence 0.0428.
Earned score 0.335 · Cap 0.699 · Final score 0.335
The final score is the lower of the earned score and the cap. Meeting a cap's conditions adds no points.
- working ledger: maximum 0.699
u_widget_loads - current platform, complete surfaces: maximum 0.799
k_widget_edit_bridgeu_widget_edit_configu_ledger_tablea_action_resultv_theme_tokensv_dark_mode - production robustness: maximum 0.799
t_out_of_orderr_paginationb_comment_exactly_onceu_llm_explainu_widget_livev_csp_cleanv_console_cleanu_ledger_sorts_index_orderb_hidden_countk_llm_model_current
Forge's own linter reports no errors (warnings cost points), every manifest function bundles and loads, packages resolve at the kit's pins, the manifest rules the linter misses, and only the scopes the app's calls need.
l deployable
1.00lint: 0 errors, every stage reached
l bundles load
1.005/5 functions bundle, load and export their handler
l lint warnings
1.000 distinct lint warning(s): []
l real packages
1.005/5 bundles resolve @forge/* at the kit pins only
l manifest rules
0.83335/6 manifest rules met: keys_unique
l scopes
1.00scopes: missing [], extra []
Current modules and APIs: dashboards:widget with its edit API, the rovo:skill and rovo:mcp wiring, a Forge LLM model the platform lists as active, no /rest/api/3/search, no @forge/api storage, a nodejs22.x or nodejs24.x runtime, the consumer shape, the declared KVS entity, and deploy readiness: a manifest and permissions real Forge would accept and no code predicted to fail there.
k dashboard widget
1.00dashboards:widget 2/2: {'custom_ui_resource': True, 'edit_resource': True}
k widget edit bridge
0.00vacuous — precondition unmet: edit surface rendered
k rovo skill
1.00rovo:skill 7/7:
k current apis
1.00current APIs 5/5:
k consumer shape
1.00consumer shape 3/3
k entity declared
1.00entities with a sprint-partitioned, ranged index: ['change']
k rovo mcp
1.00rovo:mcp 4/4:
k llm model current
0.00vacuous — precondition unmet: >= 1 LLM call
k manifest semantics
1.00deploy readiness, manifest + permissions: 17 rules checked, none failing here
k runtime risks
1.00deploy readiness, predicted runtime failures: 10 rules checked, none failing here
Issue updates flow trigger to queue to consumer: one ledger row per change under duplicate, reordered and dropped deliveries, multi-sprint changelog values, re-estimates followed, Retry-After honoured, no user context in background work.
t trigger handoff
1.0043/43 deliveries handed off correctly
t event rows
1.00event rows: 22/22 exact (precision 1.00, recall 1.00)
t no double count
1.00every change holds at most one ledger row in every phase (duplicated deliveries included)
t out of order
0.75worst of 3 scoring sites (seed f38bd03600d44884): permuted deliveries: 9/9 rows exact, 0/3 sprints with oracle numbers
t multi sprint parse
1.0024/24 multi-id Sprint changes recorded exactly
t reestimate followed
0.00worst of 3 scoring sites (seed f38bd03600d44884): 0/2 re-estimated sprints show the oracle numbers
t retry after honoured
1.00InvocationError retryAfter 30s >= 30s
t no user in async
1.00background work is asApp only
The first scheduled run backfills every change since each active sprint started, removals included; later runs heal what the event stream missed, page through results in each endpoint's own style, wait out rate limits and finish inside the module timeout.
r backfill complete
1.0055/55 historical changes recorded exactly after the first scheduled run
r removals found
1.0013/13 removed-to-backlog changes found
r heal dropped
1.004/4 dropped changes healed exactly once; 0 other row(s) added
r pagination
0.882415/17 reads the site served in two or more pages walked to their end, each page once, continuing where the site left off (/rest/agile/1.0/board 1/1, /rest/agile/1.0/board/{id}/sprint 2/4, /rest/api/3/changelog/bulkfetch
r rate limit
1.00backfill request 2: waited 2.0 virtual s in-invocation; backfill continuation page: waited 2.0 virtual s in-invocation; heal request 2: waited 2.0 virtual s in-invocation
r as app
1.0035/35 scheduled-run Jira calls asApp
r completes in timeout
1.003/3 scheduled invocations inside the module timeout
r idempotent rerun
0.0081 entity write(s) on a no-change run over 81 rows
Forge KVS with the storage scope, ledger reads through the declared entity index in change-time order, no KVS limit errors.
s storage scope
1.00KVS used, no 403 from the KVS proxy
s entity index used
1.006/6 ledger reads are entity queries on the sprint index
s index order
0.00vacuous — precondition unmet: table rows rendered
s limits
1.00no KVS limit errors
Every invoked resolver exists and answers structured errors, nobody sees changes to issues they cannot browse (not on screen, not in an LLM prompt, not in a Realtime payload), the hidden-change count is right, and each click posts exactly one ADF comment as the viewer.
b invoke contract
0.00vacuous — precondition unmet: >= 1 invoke observed
b no permission leak
1.00no hidden key, summary or change id reached a person
b hidden count
0.66676/9 hidden counts equal the oracle
b comment adf as user
0.00vacuous — precondition unmet: >= 1 comment POST
b comment exactly once
0.00vacuous — precondition unmet: >= 1 comment POST
b realtime payload clean
1.0019/19 realtime payloads hold sprint ids only
The dashboard widget's numbers and chart, its board choice saved through the host, live updates through Forge Realtime, the sprint action's ledger table, sorting, issue links, comment flow, the Forge LLM explanation, close and not-started states.
u widget loadsdiagnostic, no weight
0.000/4 configured widget views render a sprint with its numbers
u widget numbers
0.00widget numbers: 0.00/4 views exact (sprints by startDate, four §1 numbers each)
u widget chart
0.000/4 charts on one linear scale within 1px; ['no single svg[data-testid=chart]', 'no single svg[data-testid=chart]']
u widget edit config
0.00edit/config 0/6: no_config_needs_config_only, pick0_view_shows_board, pick0_reopen_pressed, pick1_view_shows_board, pick1_reopen_pressed, second_instance_own_board
u ledger table
0.00ledger tables: 0.00/3 exact (rows, cells, default order)
u ledger sort
0.00vacuous — precondition unmet: table rows rendered
u issue router
0.00vacuous — precondition unmet: table rows rendered
u comment flow
0.00required app surface absent: post-summary flow
u modal close
0.00vacuous — precondition unmet: modal rendered
u not started
0.00future sprint context: not-started not shown alone
u widget live
0.00vacuous — precondition unmet: widget rendered sprints
u llm explain
0.00vacuous — precondition unmet: explain control rendered
Atlassian design tokens with 4.5:1 contrast in light and dark, a painted surface, no Content Security Policy violations or console errors, and the widget readable at 380 px wide.
v theme tokens
0.00vacuous — precondition unmet: a surface rendered app content
v dark mode
0.00vacuous — precondition unmet: a surface rendered app content
v csp clean
0.00vacuous — precondition unmet: a surface rendered app content
v console clean
0.00vacuous — precondition unmet: a surface rendered app content
v widget sizes
0.00vacuous — precondition unmet: widget rendered sprints
The get-sprint-scope action returns exact numbers and the visible changes for the invoking person, returns errors instead of throwing, and the skill's SKILL.md tells the agent how to use it.
a action result
0.00worst of 3 scoring sites (seed f38bd03600d44884): 0/3 active sprints answered exactly
a action errors
1.002/2 bad sprintId inputs return {error} without throwing
a action permissions
1.006/6 per-person answers list exactly what that person may browse
a skill instructions
1.00SKILL.md body 5/5: result fields named ['sprintName', 'committed', 'added', 'removed', 'creepPercent', 'hiddenChanges', 'changes']
Few Jira requests in the backfill and per event, few round trips before each surface paints, and a scheduled run with nothing new writes nothing — paid only in proportion to the excellence gate.
e reconcile economy
0.75mean over 3 scoring sites: backfill 18 Jira calls / optimum 15 (incl. 2 forced 429 repeat(s)) = 1.20x
e event economy
1.00mean over 3 scoring sites: 32 Jira calls / optimum 24 (23 delivered relevant change(s) x 1 read + 1 forced 429 repeat) = 1.33x; 1.0 at <= 1.46x
e ui round trips
0.00mean over 3 scoring sites: no surface rendered app content
Graded browser recording
Loading duration…Watch the full graded browser recording at its original speed: the dashboard widget, the sprint action and the not-started sprint, as the scorer drove them on the run's own seed. The test results and screenshots on this page provide the wider evidence. Pause or scrub to inspect a view.
Drag the timeline to seek. Keyboard: arrow keys move 5 seconds; Home and End jump to the start and end.
SHA-256: 65d925d03f74ee299c3a3bfd74739506b2b8744e7e5b8f89f193c5614817b3b3
Screenshots
Browser screenshots of the built app, taken during grading. Each caption names the view.
Run details
- Model
- deepseek/deepseek-v4.1-flash
- Engine events
- 0
- Repair rounds
- 0
- Started
- Oct 4, 2026, 10:04 AM
- Finished
- Oct 4, 2026, 10:35 AM