moonshotai/kimi-k3.1-pro · storybook-mcp · all runs of statement · Nov 9, 09:54
Runs from different design-system versions should not be compared.
A screenshot in each theme, as the benchmark took it.
As the agent left it; marked lines broke a rule.
import type { Meta, StoryObj } from "@storybook/react-vite";import OctoberStatementPage from "./page";14 counted, under 2 rules. “Not counted” marks a compiler error that restates a design-system violation, “Ignored” one the agent silenced with a comment.
One row per model call, with the tools it asked for. An agent that reads the guidelines before writing shows it here; what a checker or submit_view answered is under its call.
| Step | Tools | Tokens in | Tokens out | Cost |
|---|---|---|---|---|
| 0 | docs-list | 152 | 191 | $0.0029 |
| 1 | get-storybook-story-instructions, list_files, docs-show, docs-show, docs-show, docs-show, docs-show | 857 | 227 | $0.0046 |
| 2 | read_file | 5,849 | 62 | $0.0132 |
As the agent left it; marked lines broke a rule.
import { Badge, Card, CardBody, CardDescription, CardHeader, CardTitle, Table, TableBody, TableCell, TableHead, TableHeader, TableRow,} from "@vektos/ds";import { css } from "styled-system/css";import data from "./fixture.json"; const pageStyles = css({ minHeight: "screen", bg: "bg.canvas", color: "fg.default", fontFamily: "sans", px: { base: "4", md: "8" }, py: { base: "6", md: "10" },}); const containerStyles = css({ width: "full", maxWidth: "6xl", mx: "auto", display: "flex", flexDirection: "column", gap: "6",}); const eyebrowStyles = css({ color: "fg.muted", fontSize: "sm", fontWeight: "semibold", letterSpacing: "wide", textTransform: "uppercase",}); const titleStyles = css({ marginBlockStart: "2", fontSize: { base: "3xl", md: "4xl" }, lineHeight: "tight", fontWeight: "bold", letterSpacing: "tight",}); const periodStyles = css({ marginBlockStart: "2", color: "fg.muted", fontSize: "md",}); const summaryStyles = css({ display: "flex", flexDirection: { base: "column", md: "row" }, alignItems: { base: "stretch", md: "center" }, gap: { base: "6", md: "10" },}); const summaryItemStyles = css({ display: "flex", flexDirection: "column", gap: "1",}); const balanceItemStyles = css({ display: "flex", flexDirection: "column", gap: "1", marginInlineStart: { base: "0", md: "auto" }, textAlign: { base: "left", md: "right" },}); const labelStyles = css({ color: "fg.muted", fontSize: "sm", fontWeight: "medium",}); const accountValueStyles = css({ fontSize: "lg", lineHeight: "normal", fontWeight: "semibold",}); const ibanStyles = css({ fontFamily: "mono", fontSize: "sm", lineHeight: "normal", overflowWrap: "anywhere",}); const balanceStyles = css({ fontSize: { base: "2xl", md: "3xl" }, lineHeight: "tight", fontWeight: "bold", fontVariantNumeric: "tabular-nums", whiteSpace: "nowrap",}); const tableScrollerStyles = css({ marginBlockStart: "4", overflowX: "auto",}); const tableStyles = css({ minWidth: "3xl",}); const dateStyles = css({ color: "fg.muted", whiteSpace: "nowrap",}); const descriptionStyles = css({ fontWeight: "medium",}); const categoryStyles = css({ color: "fg.muted",}); const amountStyles = css({ color: "fg.default", fontWeight: "semibold", whiteSpace: "nowrap",}); const creditAmountStyles = css({ color: "success.text", fontWeight: "semibold", whiteSpace: "nowrap",}); const asUtcDate = (value: string) => new Date(`${value}T00:00:00Z`); const moneyFormatter = new Intl.NumberFormat("en-IE", { style: "currency", currency: data.account.currency, currencyDisplay: "symbol", minimumFractionDigits: 2, maximumFractionDigits: 2,}); const dateFormatter = new Intl.DateTimeFormat("en-GB", { day: "2-digit", month: "short", year: "numeric", timeZone: "UTC",}); const longDateFormatter = new Intl.DateTimeFormat("en-GB", { day: "numeric", month: "long", year: "numeric", timeZone: "UTC",}); const monthFormatter = new Intl.DateTimeFormat("en-GB", { month: "long", timeZone: "UTC",}); const formatTransactionAmount = (amount: number) => { const absoluteAmount = moneyFormatter.format(Math.abs(amount)); if (amount < 0) return `−${absoluteAmount}`; if (amount > 0) return `+${absoluteAmount}`; return absoluteAmount;}; export default function OctoberStatementPage() { const periodStart = asUtcDate(data.account.period.from); const periodEnd = asUtcDate(data.account.period.to); const statementMonth = monthFormatter.format(periodStart); const periodLabel = `${longDateFormatter.format(periodStart)} – ${longDateFormatter.format(periodEnd)}`; const pendingCount = data.transactions.filter( (transaction) => transaction.status === "pending", ).length; return ( <main className={`vektos ${pageStyles}`}> <div className={containerStyles}> <header> <p className={eyebrowStyles}>Current account</p> <h1 className={titleStyles}>{statementMonth} statement</h1> <p className={periodStyles}>{periodLabel}</p> </header> <Card> <CardBody> <dl className={summaryStyles}> <div className={summaryItemStyles}> <dt className={labelStyles}>Account holder</dt> <dd className={accountValueStyles}>{data.account.holder}</dd> </div> <div className={summaryItemStyles}> <dt className={labelStyles}>IBAN</dt> <dd className={ibanStyles}>{data.account.iban}</dd> </div> <div className={balanceItemStyles}> <dt className={labelStyles}> Current balance ({data.account.currency}) </dt> <dd className={balanceStyles}> {moneyFormatter.format(data.account.balance)} </dd> </div> </dl> </CardBody> </Card> <Card> <CardHeader> <CardTitle asChild> <h2>Transactions</h2> </CardTitle> <CardDescription> {data.transactions.length} transactions · {pendingCount} pending. Pending transactions are not final yet. </CardDescription> </CardHeader> <div className={tableScrollerStyles}> <Table aria-label={`${statementMonth} account transactions`} className={tableStyles} > <TableHead> <TableRow> <TableHeader>Date</TableHeader> <TableHeader>Description</TableHeader> <TableHeader>Category</TableHeader> <TableHeader>Status</TableHeader> <TableHeader numeric> Amount ({data.account.currency}) </TableHeader> </TableRow> </TableHead> <TableBody> {data.transactions.map((transaction) => { const isPending = transaction.status === "pending"; return ( <TableRow key={transaction.id}> <TableCell className={dateStyles}> <time dateTime={transaction.date}> {dateFormatter.format(asUtcDate(transaction.date))} </time> </TableCell> <TableCell className={descriptionStyles}> {transaction.description} </TableCell> <TableCell className={categoryStyles}> {transaction.category} </TableCell> <TableCell> <Badge tone={isPending ? "warning" : "neutral"}> {isPending ? "Pending" : "Booked"} </Badge> </TableCell> <TableCell numeric className={ transaction.amount > 0 ? creditAmountStyles : amountStyles } > {formatTransactionAmount(transaction.amount)} </TableCell> </TableRow> ); })} </TableBody> </Table> </div> </Card> </div> </main> );} | 3 |
| write_file, write_file |
| 829 |
| 7,153 |
| $0.0752 |
| 4 | stories-changed | 7,283 | 45 | $0.0172 |
| 5 | stories-find-by-component | 146 | 154 | $0.0054 |
| 6 | stories-find-by-component | 250 | 1,626 | $0.0204 |
| 7 | stories-preview | 1,765 | 647 | $0.0137 |
| 8 | stop | 758 | 300 | $0.0085 |