Repository navigation
feat: measure run cost per BPMN element - #8
Merged
Merged
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…ecraft Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
…e table Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Skip synthetic transcript lines before requiring a requestId and sum cost-state per priced model so context variants like [1m] reconcile. Checked against all 125 local sessions with a cost-state: no failures, no crashes. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
Install the cost ledger hook and cost map with install-cost-ledger.mjs and describe them in the example's README and mapping report. Regenerating the dark-factory example refreshes its mapping view with the new viewer code; regenerate.sh still ends with RESULT: PASS and mapping view ok. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Worum es geht
Was hat ein Lauf eines erzeugten Workflows gekostet, und welcher Teil des Diagramms wie viel davon? Die Messung ist deterministisch: Tokens aus den Session-Transkripten, Preise aus einer versionierten Tabelle, Zuordnung über die BPMN-Element-ID. Plan, Befunde und Aufgaben:
docs/plans/laufkosten/.Der Payload trägt Daten, das Plugin die Logik.
SubagentStop,Stop,SessionEnd), der jede abgeschlossene API-Anfrage einmal nach.claude/runs/<workflow>/ledger.jsonlschreibt, und eine Kostenkarte<workflow>-cost-map.json. Der Hook bricht nie einen Lauf ab und braucht nurtranscript_path.bpmn2agent-cost):cost-report.mjs(Zuordnung je Element, Lane, Phase, Modell, Abgleich),cost-bench.mjs(wiederholte Läufe mit Median und Streuung, nur mit--confirm),prices.json.agent()-Labels undAgent-Beschreibungen beginnen mit der Element-ID; verify prüft das für Workflow-Skripte.render-mapping.mjs --cost cost.jsonzeigt Badge je Element, Kostenabschnitt und Kostenzeile in den Details.Befunde aus echten Daten (spike.md)
output_tokens; damit stimmen die Tokens mitcost-stateexakt überein, und die Preistabelle reproduziertcostUSD(39 von 39 token-gleichen Modell-Sessions).cost-state; sie werden als eigener Eimer ausgewiesen.cost-statehinter dem Transkript (fortgesetzte Sessions) ist eine Warnung, kein Fehler. Über alle 125 lokalen Sessions mitcost-state: 0 Fehler, 0 Abstürze.Prüfung
node --test .agents/skills/bpmn2agent-cost/scripts/test.mjs), darunter Hook, Idempotenz, Abgleich, veraltete Preise undcost-benchgegen ein gefälschtesclaude.generated/: Ledger und Transkript liefern identische Zahlen.npm run validategrün (eine bekannte Warnung zurCLAUDE.md);regenerate.shendet mitRESULT: PASS,no reference problems, den drei Smoke-Zeilen undmapping view ok.user-story-refinementmit dem Installer um Hook und Karte ergänzt (README und Mapping-Report von Hand angepasst); verifyPASS. Das dark-factory-Mappingindex.htmlist durchregenerate.shmit dem neuen Viewer-Code aktualisiert.Noch offen
Braucht einen echten Lauf, nicht von diesem PR abhängig: die Felder der Hook-Payloads, ob Agents des Workflow-Tools unter
subagents/mit dem Label alsdescriptionlanden, und die Gegenprobe mit OpenTelemetry.🤖 Generated with Claude Code