Skip to main content

context-budget-audit

Audit prompt sizes across build orchestration dirs. Surfaces sections that dominate the prompt (>40%), tracks per-phase budget vs the model's context window, and checks whether directives in the prompt were actually covered in the response.

설치로 이동

소스 정보

저장소
learn-ukrainian/learn-ukrainian.github.io
최근 소스 활동
2026년 9월 9일 16:40
감지된 SKILL.md 언어
영어
스타
9
포크
4

설치 방법

기본적으로 소스를 먼저 확인하는 Prompt가 선택됩니다. 직접 명령으로 전환하거나 로컬 사본을 다운로드할 수도 있습니다.

소스 파일 검토

설치 여부를 결정하기 전에 SKILL.md와 SkillsMP에 표시된 보조 파일을 읽어 보세요.

SKILL.md 표시 중

SKILL.md
소스 지침 · 읽기 전용 미리보기
name
context-budget-audit
description
Audit prompt sizes across build orchestration dirs. Surfaces sections that dominate the prompt (>40%), tracks per-phase budget vs the model's context window, and checks whether directives in the prompt were actually covered in the response.
argument-hint
<track>/<slug> | <track> <slug> | <track> <range>
# Context Budget Audit: $ARGUMENTS ## Why When a build produces low scores, we usually discover only after the fact that the wiki packet was 62.5% of the write prompt and drowned out everything else. This skill catches that pattern BEFORE it wastes a build — or explains it AFTER when you're debugging. The v6 write prompt has historically grown without anyone noticing. The first real data point: #1070 surfaced a 33K-char write prompt that was causing Gemini to ignore MCP tool instructions. The Gemini session analyzer (#1174, `scripts/build/session_analysis.py`) now emits a `session-analysis.yaml` next to every dispatch meta file. This skill is the human-readable interpretation layer on top of those raw files. ## Parse Arguments The user provides one of these patterns: 1. **Full path**: `curriculum/l2-uk-en/a2/orchestration/a2-bridge/` 2. **Track + slug**: `a2 a2-bridge` 3. **Track + range**: `a2 1-10` (audit a range of modules in sequence) 4. **Level only**: `a2` (audit every module with a non-empty orchestration dir) Resolve the path(s) and process each in turn. ## Execute For each orchestration dir, walk `dispatch/` and load every `*-session-analysis.yaml` file. Each file has this shape: ```yaml session_path: /Users/.../session-2026-04-10T21-23-efd64bd5.json phase: write-chunk-02 prompt_chars: 41214 response_chars: 8695 prompt_words: 5683 response_words: 1442 sections: - name: header length: 489 fraction: 0.0119 - name: skeleton length: 1535 fraction: 0.0372 - name: plan length: 9991 fraction: 0.2424 - name: wiki length: 25780 fraction: 0.6254 - name: output_spec length: 128 fraction: 0.0031 large_sections: - wiki directives_total: 10 directives_covered: 6 directives_missed: - kind: must text: Each section MUST contain at least one callout. covered: false coverage_note: "1/4 keywords (25%)" ``` Aggregate this data across phases and produce a report with four sections: ### 1. Budget overview per phase A table: phase → prompt_chars → response_chars → compression ratio → flagged (yes if any large section). ### 2. Oversized sections (> 40% threshold) Any section whose `fraction > 0.40`. These are drowning-out candidates. Group by phase and section name: - `write-chunk-02: wiki at 62.5% (25.7K of 41.2K)` — recommendation: **chunk the wiki packet** or reduce `_SECTION_MARKERS` trim window in `scripts/build/session_analysis.py`. - `write: plan at 48% (19K of 40K)` — recommendation: **trim plan content_outline** in the writer prompt template (the plan belongs in `check` phase, not `write`). ### 3. Directive coverage Cross-phase average of `directives_covered / directives_total`. List the top 5 most-frequently-missed directives (normalize by text prefix) so the user can decide if the directive is worth keeping or rephrasing. ### 4. Context window headroom For each phase, identify the actual dispatched model and harness from its dispatch metadata. Resolve context capacity from the live catalog and the selected runtime's validated context profile, following `agents_extensions/shared/rules/model-assignment.md`. Record the model, harness, capacity, and evidence source in the report. A historical model window does not establish the current runtime's capacity, including for Astra. Compute `prompt_chars / model_context_chars` only when validated capacity is available. If the profile expresses capacity in tokens, label the conversion to characters as an estimate (approximately 4 chars/token). If capacity or dispatch identity is unavailable, report headroom as **unknown**; do not invent a window or reuse another model's value. Flag any phase where prompt_chars exceeds 50% of the validated model window — this threshold remains a hard rule for this skill. Unknown capacity cannot establish a pass. ### 5. Trend analysis (optional) If there are multiple orchestration dirs for the same slug (from repeated builds / retries), compare prompt sizes across attempts. If the prompt is GROWING across retries (e.g. due to correction directives being appended), flag it. ## Output Save the report to `curriculum/l2-uk-en/{track}/audit/{slug}-context-budget.md`. Format: ```markdown # Context Budget Audit: {slug} **Track**: {track} **Audited at**: {ISO timestamp} **Orchestration dir**: {absolute path} ## Phase overview | Phase | Prompt (chars) | Response (chars) | Compression | Flagged | |---|---:|---:|---:|:-:| | check | 1234 | 456 | 2.7x | | | research | ... | | skeleton | ... | | write-chunk-01 | 41214 | 8695 | 4.7x | ⚠️ wiki 62.5% | | write-chunk-02 | ... | | review | ... | ## Oversized sections (> 40% of prompt) - **write-chunk-01**: `wiki` at 62.5% (25,780 / 41,214 chars) - Recommendation: cap wiki packet at 20K chars in `_build_chunk_prompt`, or move wiki to a separate enrich phase after write. ## Directive coverage Average: 6 / 10 (60%) — this is low. Target is ≥85%. Top 5 missed directives (across all phases): 1. `Each section MUST contain at least one callout.` — missed in 3 of 4 chunks 2. `<!-- INJECT_ACTIVITY: quiz, Case Drill, 8 items -->` — missed in write-chunk-01 ... ## Context window headroom | Phase | Prompt | Model | Window | Used | |---|---:|---|---:|---:| | write-chunk-01 | 41K | gemini-3.1-pro-preview | 4M | 1.0% | No phase exceeds the 50% threshold. Good. ## Recommendations 1. Cap wiki packet at 20K chars in `_build_chunk_prompt` (drops prompt by 30%). 2. Investigate why the callout directive is being ignored — it's explicit in the prompt but gets 25% keyword coverage. ``` ## Batch mode When given a range or a whole level, also produce `curriculum/l2-uk-en/{track}/audit/context-budget-summary.md`: - Per-phase averages (mean prompt_chars, mean directive coverage) - Top 10 modules with the largest prompts - Top 10 modules with the lowest directive coverage - Cross-module patterns: directives missed in >50% of modules (these need prompt engineering, not per-module fixes) ## Source of truth All data comes from `*-session-analysis.yaml` files emitted by `_save_dispatch_log` in `scripts/build/dispatch.py`. The analysis logic lives in `scripts/build/session_analysis.py` and the parser in `scripts/build/gemini_session.py`. If a phase has no `*-session-analysis.yaml` file, skip it silently — that phase either pre-dates #1174 or used a non-Gemini agent (Codex/Claude session parsers are follow-up work). Reference issues: #1076 (this skill), #1174 (the underlying analyzer), #1070 (the original 33K-prompt incident that motivated both).
GitHub에서 보기