[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-google-cloud-context-engineering-hillclimb":3,"mdc-mfa9er-key":35,"related-repo-google-cloud-context-engineering-hillclimb":2259,"related-org-google-cloud-context-engineering-hillclimb":2350},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":24,"repoUrl":25,"updatedAt":26,"license":27,"forks":28,"topics":29,"repo":30,"sourceUrl":33,"mdContent":34},"context-engineering-hillclimb","improve ContextSet via hill-climbing iterations","Guides the agent to perform hill-climbing iterations to improve a ContextSet based on Evalbench evaluation results.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"google-cloud","Google Cloud","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fgoogle-cloud.png","GoogleCloudPlatform",[13,17,20,23],{"name":14,"slug":15,"type":16},"Evals","evals","tag",{"name":18,"slug":19,"type":16},"Data Analysis","data-analysis",{"name":21,"slug":22,"type":16},"Optimization","optimization",{"name":9,"slug":8,"type":16},34,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fdb-context-enrichment","2026-07-18T05:47:54.951176",null,11,[],{"repoUrl":25,"stars":24,"forks":28,"topics":31,"description":32},[],"A context engineering agent designed to generate, manage, and optimize structured context sets from your database schemas. It bridges the gap between Large Language Models (LLMs) and databases by compiling, evaluating, and maintaining the precise operational context needed for highly accurate natural language-to-SQL query generation.","https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fdb-context-enrichment\u002Ftree\u002FHEAD\u002Fplugin\u002Fskills\u002Fcontext-engineering-hillclimb","---\nname: context-engineering-hillclimb\ndescription: Guides the agent to perform hill-climbing iterations to improve a ContextSet based on Evalbench evaluation results.\n---\n\n> **Load the `context-engineering-workflow` skill first.** It holds the shared context this phase depends on: workspace layout, state file conventions, phase order, and safety protocol. Do not proceed with this phase without reading it.\n\n# Phase: Optimization & Hill-Climbing\n\n## Goal\nAnalyze evaluation failures to perform a Gap Analysis and apply targeted context mutations (refinements) to iteratively improve translation accuracy.\n\n## Workflow\n\nFollow these steps exactly in order:\n\n### 1. Setup & Loop \n\n1.  **Validation**:\n    -   Check if `autoctx\u002Fexperiments\u002F` directory and `autoctx\u002Fstate.md` exist. If missing, warn the user that the workspace might not be initialized (suggest running the Setup & Connection phase of this skill first).\n    -   Once an experiment is selected, verify it contains an `eval_reports\u002F` folder. If missing, suggest running the Evaluation workflow first.\n2.  **Identify Experiment**:\n    -   Read the local `autoctx\u002Fstate.md` to identify the active experiment.\n    -   If not found, ask the user to select an experiment folder from `autoctx\u002Fexperiments\u002F`.\n3.  **Determine Loop Version**:\n    -   Scan the `autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002F` folder for files matching `improved_context_v*.json`.\n    -   Determine the loop version `vN` by finding the maximum `N` and using `N+1`. If the folder is empty, start at `v1`.\n4.  **Locate Base Context**:\n    -   For `v1`:\n        -   Check `autoctx\u002Fstate.md` to see if a specific base context path was recorded for this experiment (e.g., during the Evaluation setup for user-provided contexts).\n        -   If not found in `state.md`, default to the baseline generated by Bootstrap in the experiment folder.\n        -   If still not found, ask the user for the absolute path to their base context file and record it as the Base Context in autoctx\u002Fstate.md.\n    -   For `vN` (where N > 1), the base context is `improved_context_v(N-1).json`.\n    -   Verify the base context file exists. If missing, STOP and ask the user for the correct path.\n\n---\n\n### 2. Phase 1: Gap Analysis\n\n1.  **Validation**:\n    -   Determine the target evaluation run folder under `eval_reports\u002F`. If multiple folders exist, find the most recent one by modified time. **Prefer the latest run by default**, but list other available runs as well (peeking into their `summary.csv` or `configs.csv` to show timestamps\u002Fmetrics for visual context). Ask the user to confirm the selection.\n    -   Verify that the selected `eval_reports\u002F\u003Cjob_id_folder>\u002F` contains expected files (e.g., `scores.csv`, `summary.csv`). If missing or empty, STOP and inform the user.\n2.  **Read Evaluation Results**: Use the `read_evaluation_result` MCP tool passing the path to `eval_reports\u002F\u003Cjob_id_folder>\u002F`.\n3.  **Generate Gap Analysis Report (Batched)**:\n    -   The tool returns a summary and a batch of failure cases (default limit 10).\n    -   Iterate through the failure cases by calling the tool with increasing `offset` (0, 10, 20, ...) until all failed queries are analyzed.\n    -   **First Batch (offset=0)**: Initialize the report file with the `# Gap Analysis Report - vN` header and `## Summary` section, followed by the analysis of the first batch under `## Failed Queries Detail`.\n    -   **Subsequent Batches**: Call the tool with the next offset, analyze the new failures, and **append** them to the `## Failed Queries Detail` section.\n\n    Use the following structure for the report:\n\n    ```markdown\n    # Gap Analysis Report - vN\n\n    ## Summary\n    - **Total Queries**: 10\n    - **Passed**: 7\n    - **Failed**: 3\n    - **Pass Rate**: 70%\n\n    ## Failed Queries Detail\n\n    ### Query 1: \"How many users registered in 2023?\"\n    - **Error Category**: `[FilterError]`\n    - **Expected SQL**: `SELECT count(*) FROM users WHERE year = 2023`\n    - **Actual SQL**: `SELECT count(*) FROM users` (Missing filter)\n    - **Root Cause**: The LLM did not know about the `year` column or how to filter by year for this entity.\n    - **Proposed Mutation**: Add a facet for \"Users by Year\".\n\n    ### Query 2: \"Show me top selling products\"\n    - **Error Category**: `[OrderingError]`\n    - **Expected SQL**: `SELECT name FROM products ORDER BY sales DESC LIMIT 5`\n    - **Actual SQL**: `SELECT name FROM products LIMIT 5`\n    - **Root Cause**: Missing ordering instruction in context.\n    - **Proposed Mutation**: Update the template for \"Product Sales\" to include ordering.\n\n    ### Query 3: \"Get users older than 30\"\n    - **Error Category**: `[GoldenDataError]`\n    - **Expected SQL**: `SELECT * FROM users WHERE age >> 30` (Syntax error `>>` in golden SQL)\n    - **Actual SQL**: `SELECT * FROM users WHERE age > 30`\n    - **Root Cause**: Invalid syntax in golden dataset.\n    - **Proposed Mutation**: None. Flag to user to fix the evaluation dataset.\n    ```\n4.  **Save Report**: You **MUST** physically write the report file to `autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fgap_analysis_vN.md`. If you are processing in batches, ensure you append to this file until all failed queries are documented. Do not merely output it in chat; it must exist on the file system.\n5.  **Log in State Tracking**:\n    -   Update `autoctx\u002Fstate.md` to record the mapping for Loop `vN` (Base Context \u003C-> Eval Report \u003C-> Gap Analysis).\n6.  **Human-in-the-Loop Review**:\n    -   Inform the user that the Gap Analysis report has been successfully written to disk.\n    -   Ask the user if they want to review, make any corrections, or add manual feedback directly to the file before proceeding to Phase 2 (Context Mutation).\n    -   Wait for user confirmation before starting Phase 2.\n\n---\n\n### 3. Phase 2: Context Mutation\n\nRefer to [context-generation-guide](..\u002Fcontext-generation-guide\u002FSKILL.md) for how to edit a ContextSet.\n\n1.  **Validation**: Verify that `gap_analysis_vN.md` exists and contains findings. Verify the base ContextSet file exists. If missing, STOP and inform the user.\n2.  **Analyze Gap Report & Determine Fixing Strategy**:\n    -   Read `gap_analysis_vN.md` to identify what needs to be fixed.\n    -   **Fixing Strategy Guidelines**:\n        -   **Conciseness**: Try to use *less context* to cover *more scenarios*. Avoid adding redundant or hyper-specific templates for every single edge case.\n        -   **Generalizability**: Prefer solutions that generalize well (e.g., use a `facet` for a column definition rather than a specific `template` for every query using that column).\n        -   **Supported Types**: Support mutations for `template`, `facet`, and `value_search` types.\n3.  **Apply Mutations**:\n    -   **Copy the Base Context**: Copy the base ContextSet file to the new destination: `autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fimproved_context_vN.json`.\n    -   **Generate New Items**: For any new context items identified in the fixing strategy (for \"add\" operations):\n        -   **Invoke the `context-generation-guide` skill** to produce the final parameterized items.\n        -   Provide the identified candidates to that skill.\n        -   That skill will handle phrase extraction, parameterization, and constructing the valid JSON structure.\n    -   **Validate New Items**:\n        -   **Templates**: Run generated SQL examples via `\u003Csource>-execute-sql` (use dummy values for placeholders) to verify syntax.\n        -   **Others**: Cross-check table\u002Fcolumn references against the schema via `\u003Csource>-list-schemas`.\n    -   **Apply Mutations**: Call the `mutate_context_set` MCP tool passing the **new** file path as `file_path` and mutations as `mutations_json` to mutate the context set.\n3.  **Log in State Tracking**:\n    -   Update `autoctx\u002Fstate.md` to include the output path of `improved_context_vN.json` for Loop `vN`.\n\n---\n\n### 4. Validation & Upload Advice\n\n1.  **Summarize Improvements**: Tell the user what was changed (e.g., added 2 facets, updated 1 template).\n2.  **Upload Instructions**:\n    -   **Read Database Details**: Read `autoctx\u002Ftools.yaml` (or `db_config.yaml`) to fetch the specific project, location, and instance\u002Fcluster details for the active database.\n    -   **Generate URL**: Call the `generate_upload_url` tool passing the extracted values to provide the direct console link to the user.\n    -   Present the local file path to `improved_context_vN.json` and the generated console link together in a single clear message.\n3.  **Instruct Next Step Evaluation**:\n    -   Instruct the user to run evaluation using the evaluating workflow on this new ContextSet to see if metrics improve. This will start Loop `N+1`.\n\n---\n\n## Output\n\nUpon successful completion, the workspace must contain:\n-   `autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fgap_analysis_vN.md`\n-   `autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fimproved_context_vN.json`\n-   Updated `autoctx\u002Fstate.md` summarizing the run loop.\n\n---\n\n## Logging State Example (`autoctx\u002Fstate.md`)\n\nWhen updating `autoctx\u002Fstate.md`, please append or update the `Hill-Climbing Run Log` section:\n\n```markdown\n# Context Authoring Experiment State Tracking\n\n## Active Experiment: my-exp-1\n\n## Hill-Climbing Run Log\n\n### Loop: v1\n- **Base Context**: `baseline_context.json`\n- **Eval Report Path**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Feval_reports\u002F\u003Cjob_id_uuid>\u002F` (containing `configs.csv`, `evals.csv`, etc.)\n- **Gap Analysis**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fgap_analysis_v1.md`\n- **Mutated Context**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fimproved_context_v1.json`\n```\n\n\n> [!IMPORTANT]\n> **Tool Modification Rule**: Always use the `mutate_context_set` tool for all ContextSet changes. Pass mutation payloads directly to the tool — it handles all file I\u002FO internally. **Do not read the target context set file beforehand**.\n",{"data":36,"body":37},{"name":4,"description":6},{"type":38,"children":39},"root",[40,67,74,81,86,92,97,104,340,344,350,1413,1416,1422,1436,1766,1769,1775,1878,1881,1887,1892,1923,1926,1939,1959,2222,2253],{"type":41,"tag":42,"props":43,"children":44},"element","blockquote",{},[45],{"type":41,"tag":46,"props":47,"children":48},"p",{},[49,65],{"type":41,"tag":50,"props":51,"children":52},"strong",{},[53,56,63],{"type":54,"value":55},"text","Load the ",{"type":41,"tag":57,"props":58,"children":60},"code",{"className":59},[],[61],{"type":54,"value":62},"context-engineering-workflow",{"type":54,"value":64}," skill first.",{"type":54,"value":66}," It holds the shared context this phase depends on: workspace layout, state file conventions, phase order, and safety protocol. Do not proceed with this phase without reading it.",{"type":41,"tag":68,"props":69,"children":71},"h1",{"id":70},"phase-optimization-hill-climbing",[72],{"type":54,"value":73},"Phase: Optimization & Hill-Climbing",{"type":41,"tag":75,"props":76,"children":78},"h2",{"id":77},"goal",[79],{"type":54,"value":80},"Goal",{"type":41,"tag":46,"props":82,"children":83},{},[84],{"type":54,"value":85},"Analyze evaluation failures to perform a Gap Analysis and apply targeted context mutations (refinements) to iteratively improve translation accuracy.",{"type":41,"tag":75,"props":87,"children":89},{"id":88},"workflow",[90],{"type":54,"value":91},"Workflow",{"type":41,"tag":46,"props":93,"children":94},{},[95],{"type":54,"value":96},"Follow these steps exactly in order:",{"type":41,"tag":98,"props":99,"children":101},"h3",{"id":100},"_1-setup-loop",[102],{"type":54,"value":103},"1. Setup & Loop",{"type":41,"tag":105,"props":106,"children":107},"ol",{},[108,157,193,261],{"type":41,"tag":109,"props":110,"children":111},"li",{},[112,117,119],{"type":41,"tag":50,"props":113,"children":114},{},[115],{"type":54,"value":116},"Validation",{"type":54,"value":118},":\n",{"type":41,"tag":120,"props":121,"children":122},"ul",{},[123,144],{"type":41,"tag":109,"props":124,"children":125},{},[126,128,134,136,142],{"type":54,"value":127},"Check if ",{"type":41,"tag":57,"props":129,"children":131},{"className":130},[],[132],{"type":54,"value":133},"autoctx\u002Fexperiments\u002F",{"type":54,"value":135}," directory and ",{"type":41,"tag":57,"props":137,"children":139},{"className":138},[],[140],{"type":54,"value":141},"autoctx\u002Fstate.md",{"type":54,"value":143}," exist. If missing, warn the user that the workspace might not be initialized (suggest running the Setup & Connection phase of this skill first).",{"type":41,"tag":109,"props":145,"children":146},{},[147,149,155],{"type":54,"value":148},"Once an experiment is selected, verify it contains an ",{"type":41,"tag":57,"props":150,"children":152},{"className":151},[],[153],{"type":54,"value":154},"eval_reports\u002F",{"type":54,"value":156}," folder. If missing, suggest running the Evaluation workflow first.",{"type":41,"tag":109,"props":158,"children":159},{},[160,165,166],{"type":41,"tag":50,"props":161,"children":162},{},[163],{"type":54,"value":164},"Identify Experiment",{"type":54,"value":118},{"type":41,"tag":120,"props":167,"children":168},{},[169,181],{"type":41,"tag":109,"props":170,"children":171},{},[172,174,179],{"type":54,"value":173},"Read the local ",{"type":41,"tag":57,"props":175,"children":177},{"className":176},[],[178],{"type":54,"value":141},{"type":54,"value":180}," to identify the active experiment.",{"type":41,"tag":109,"props":182,"children":183},{},[184,186,191],{"type":54,"value":185},"If not found, ask the user to select an experiment folder from ",{"type":41,"tag":57,"props":187,"children":189},{"className":188},[],[190],{"type":54,"value":133},{"type":54,"value":192},".",{"type":41,"tag":109,"props":194,"children":195},{},[196,201,202],{"type":41,"tag":50,"props":197,"children":198},{},[199],{"type":54,"value":200},"Determine Loop Version",{"type":54,"value":118},{"type":41,"tag":120,"props":203,"children":204},{},[205,225],{"type":41,"tag":109,"props":206,"children":207},{},[208,210,216,218,224],{"type":54,"value":209},"Scan the ",{"type":41,"tag":57,"props":211,"children":213},{"className":212},[],[214],{"type":54,"value":215},"autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002F",{"type":54,"value":217}," folder for files matching ",{"type":41,"tag":57,"props":219,"children":221},{"className":220},[],[222],{"type":54,"value":223},"improved_context_v*.json",{"type":54,"value":192},{"type":41,"tag":109,"props":226,"children":227},{},[228,230,236,238,244,246,252,254,260],{"type":54,"value":229},"Determine the loop version ",{"type":41,"tag":57,"props":231,"children":233},{"className":232},[],[234],{"type":54,"value":235},"vN",{"type":54,"value":237}," by finding the maximum ",{"type":41,"tag":57,"props":239,"children":241},{"className":240},[],[242],{"type":54,"value":243},"N",{"type":54,"value":245}," and using ",{"type":41,"tag":57,"props":247,"children":249},{"className":248},[],[250],{"type":54,"value":251},"N+1",{"type":54,"value":253},". If the folder is empty, start at ",{"type":41,"tag":57,"props":255,"children":257},{"className":256},[],[258],{"type":54,"value":259},"v1",{"type":54,"value":192},{"type":41,"tag":109,"props":262,"children":263},{},[264,269,270],{"type":41,"tag":50,"props":265,"children":266},{},[267],{"type":54,"value":268},"Locate Base Context",{"type":54,"value":118},{"type":41,"tag":120,"props":271,"children":272},{},[273,317,335],{"type":41,"tag":109,"props":274,"children":275},{},[276,278,283,284],{"type":54,"value":277},"For ",{"type":41,"tag":57,"props":279,"children":281},{"className":280},[],[282],{"type":54,"value":259},{"type":54,"value":118},{"type":41,"tag":120,"props":285,"children":286},{},[287,299,312],{"type":41,"tag":109,"props":288,"children":289},{},[290,292,297],{"type":54,"value":291},"Check ",{"type":41,"tag":57,"props":293,"children":295},{"className":294},[],[296],{"type":54,"value":141},{"type":54,"value":298}," to see if a specific base context path was recorded for this experiment (e.g., during the Evaluation setup for user-provided contexts).",{"type":41,"tag":109,"props":300,"children":301},{},[302,304,310],{"type":54,"value":303},"If not found in ",{"type":41,"tag":57,"props":305,"children":307},{"className":306},[],[308],{"type":54,"value":309},"state.md",{"type":54,"value":311},", default to the baseline generated by Bootstrap in the experiment folder.",{"type":41,"tag":109,"props":313,"children":314},{},[315],{"type":54,"value":316},"If still not found, ask the user for the absolute path to their base context file and record it as the Base Context in autoctx\u002Fstate.md.",{"type":41,"tag":109,"props":318,"children":319},{},[320,321,326,328,334],{"type":54,"value":277},{"type":41,"tag":57,"props":322,"children":324},{"className":323},[],[325],{"type":54,"value":235},{"type":54,"value":327}," (where N > 1), the base context is ",{"type":41,"tag":57,"props":329,"children":331},{"className":330},[],[332],{"type":54,"value":333},"improved_context_v(N-1).json",{"type":54,"value":192},{"type":41,"tag":109,"props":336,"children":337},{},[338],{"type":54,"value":339},"Verify the base context file exists. If missing, STOP and ask the user for the correct path.",{"type":41,"tag":341,"props":342,"children":343},"hr",{},[],{"type":41,"tag":98,"props":345,"children":347},{"id":346},"_2-phase-1-gap-analysis",[348],{"type":54,"value":349},"2. Phase 1: Gap Analysis",{"type":41,"tag":105,"props":351,"children":352},{},[353,428,452,1330,1355,1386],{"type":41,"tag":109,"props":354,"children":355},{},[356,360,362],{"type":41,"tag":50,"props":357,"children":358},{},[359],{"type":54,"value":116},{"type":54,"value":361},":",{"type":41,"tag":120,"props":363,"children":364},{},[365,400],{"type":41,"tag":109,"props":366,"children":367},{},[368,370,375,377,382,384,390,392,398],{"type":54,"value":369},"Determine the target evaluation run folder under ",{"type":41,"tag":57,"props":371,"children":373},{"className":372},[],[374],{"type":54,"value":154},{"type":54,"value":376},". If multiple folders exist, find the most recent one by modified time. ",{"type":41,"tag":50,"props":378,"children":379},{},[380],{"type":54,"value":381},"Prefer the latest run by default",{"type":54,"value":383},", but list other available runs as well (peeking into their ",{"type":41,"tag":57,"props":385,"children":387},{"className":386},[],[388],{"type":54,"value":389},"summary.csv",{"type":54,"value":391}," or ",{"type":41,"tag":57,"props":393,"children":395},{"className":394},[],[396],{"type":54,"value":397},"configs.csv",{"type":54,"value":399}," to show timestamps\u002Fmetrics for visual context). Ask the user to confirm the selection.",{"type":41,"tag":109,"props":401,"children":402},{},[403,405,411,413,419,421,426],{"type":54,"value":404},"Verify that the selected ",{"type":41,"tag":57,"props":406,"children":408},{"className":407},[],[409],{"type":54,"value":410},"eval_reports\u002F\u003Cjob_id_folder>\u002F",{"type":54,"value":412}," contains expected files (e.g., ",{"type":41,"tag":57,"props":414,"children":416},{"className":415},[],[417],{"type":54,"value":418},"scores.csv",{"type":54,"value":420},", ",{"type":41,"tag":57,"props":422,"children":424},{"className":423},[],[425],{"type":54,"value":389},{"type":54,"value":427},"). If missing or empty, STOP and inform the user.",{"type":41,"tag":109,"props":429,"children":430},{},[431,436,438,444,446,451],{"type":41,"tag":50,"props":432,"children":433},{},[434],{"type":54,"value":435},"Read Evaluation Results",{"type":54,"value":437},": Use the ",{"type":41,"tag":57,"props":439,"children":441},{"className":440},[],[442],{"type":54,"value":443},"read_evaluation_result",{"type":54,"value":445}," MCP tool passing the path to ",{"type":41,"tag":57,"props":447,"children":449},{"className":448},[],[450],{"type":54,"value":410},{"type":54,"value":192},{"type":41,"tag":109,"props":453,"children":454},{},[455,460,461,539,543,545],{"type":41,"tag":50,"props":456,"children":457},{},[458],{"type":54,"value":459},"Generate Gap Analysis Report (Batched)",{"type":54,"value":361},{"type":41,"tag":120,"props":462,"children":463},{},[464,469,482,515],{"type":41,"tag":109,"props":465,"children":466},{},[467],{"type":54,"value":468},"The tool returns a summary and a batch of failure cases (default limit 10).",{"type":41,"tag":109,"props":470,"children":471},{},[472,474,480],{"type":54,"value":473},"Iterate through the failure cases by calling the tool with increasing ",{"type":41,"tag":57,"props":475,"children":477},{"className":476},[],[478],{"type":54,"value":479},"offset",{"type":54,"value":481}," (0, 10, 20, ...) until all failed queries are analyzed.",{"type":41,"tag":109,"props":483,"children":484},{},[485,490,492,498,500,506,508,514],{"type":41,"tag":50,"props":486,"children":487},{},[488],{"type":54,"value":489},"First Batch (offset=0)",{"type":54,"value":491},": Initialize the report file with the ",{"type":41,"tag":57,"props":493,"children":495},{"className":494},[],[496],{"type":54,"value":497},"# Gap Analysis Report - vN",{"type":54,"value":499}," header and ",{"type":41,"tag":57,"props":501,"children":503},{"className":502},[],[504],{"type":54,"value":505},"## Summary",{"type":54,"value":507}," section, followed by the analysis of the first batch under ",{"type":41,"tag":57,"props":509,"children":511},{"className":510},[],[512],{"type":54,"value":513},"## Failed Queries Detail",{"type":54,"value":192},{"type":41,"tag":109,"props":516,"children":517},{},[518,523,525,530,532,537],{"type":41,"tag":50,"props":519,"children":520},{},[521],{"type":54,"value":522},"Subsequent Batches",{"type":54,"value":524},": Call the tool with the next offset, analyze the new failures, and ",{"type":41,"tag":50,"props":526,"children":527},{},[528],{"type":54,"value":529},"append",{"type":54,"value":531}," them to the ",{"type":41,"tag":57,"props":533,"children":535},{"className":534},[],[536],{"type":54,"value":513},{"type":54,"value":538}," section.",{"type":41,"tag":540,"props":541,"children":542},"br",{},[],{"type":54,"value":544},"Use the following structure for the report:",{"type":41,"tag":546,"props":547,"children":552},"pre",{"className":548,"code":549,"language":550,"meta":551,"style":551},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Gap Analysis Report - vN\n\n## Summary\n- **Total Queries**: 10\n- **Passed**: 7\n- **Failed**: 3\n- **Pass Rate**: 70%\n\n## Failed Queries Detail\n\n### Query 1: \"How many users registered in 2023?\"\n- **Error Category**: `[FilterError]`\n- **Expected SQL**: `SELECT count(*) FROM users WHERE year = 2023`\n- **Actual SQL**: `SELECT count(*) FROM users` (Missing filter)\n- **Root Cause**: The LLM did not know about the `year` column or how to filter by year for this entity.\n- **Proposed Mutation**: Add a facet for \"Users by Year\".\n\n### Query 2: \"Show me top selling products\"\n- **Error Category**: `[OrderingError]`\n- **Expected SQL**: `SELECT name FROM products ORDER BY sales DESC LIMIT 5`\n- **Actual SQL**: `SELECT name FROM products LIMIT 5`\n- **Root Cause**: Missing ordering instruction in context.\n- **Proposed Mutation**: Update the template for \"Product Sales\" to include ordering.\n\n### Query 3: \"Get users older than 30\"\n- **Error Category**: `[GoldenDataError]`\n- **Expected SQL**: `SELECT * FROM users WHERE age >> 30` (Syntax error `>>` in golden SQL)\n- **Actual SQL**: `SELECT * FROM users WHERE age > 30`\n- **Root Cause**: Invalid syntax in golden dataset.\n- **Proposed Mutation**: None. Flag to user to fix the evaluation dataset.\n","markdown","",[553],{"type":41,"tag":57,"props":554,"children":555},{"__ignoreMap":551},[556,574,584,598,630,656,682,708,716,729,737,750,792,830,873,917,943,951,964,1001,1038,1075,1100,1125,1133,1146,1183,1243,1280,1305],{"type":41,"tag":557,"props":558,"children":561},"span",{"class":559,"line":560},"line",1,[562,568],{"type":41,"tag":557,"props":563,"children":565},{"style":564},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[566],{"type":54,"value":567},"# ",{"type":41,"tag":557,"props":569,"children":571},{"style":570},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[572],{"type":54,"value":573},"Gap Analysis Report - vN\n",{"type":41,"tag":557,"props":575,"children":577},{"class":559,"line":576},2,[578],{"type":41,"tag":557,"props":579,"children":581},{"emptyLinePlaceholder":580},true,[582],{"type":54,"value":583},"\n",{"type":41,"tag":557,"props":585,"children":587},{"class":559,"line":586},3,[588,593],{"type":41,"tag":557,"props":589,"children":590},{"style":564},[591],{"type":54,"value":592},"## ",{"type":41,"tag":557,"props":594,"children":595},{"style":570},[596],{"type":54,"value":597},"Summary\n",{"type":41,"tag":557,"props":599,"children":601},{"class":559,"line":600},4,[602,607,613,619,624],{"type":41,"tag":557,"props":603,"children":604},{"style":564},[605],{"type":54,"value":606},"-",{"type":41,"tag":557,"props":608,"children":610},{"style":609},"--shiki-light:#39ADB5;--shiki-light-font-weight:bold;--shiki-default:#89DDFF;--shiki-default-font-weight:bold;--shiki-dark:#89DDFF;--shiki-dark-font-weight:bold",[611],{"type":54,"value":612}," **",{"type":41,"tag":557,"props":614,"children":616},{"style":615},"--shiki-light:#E53935;--shiki-light-font-weight:bold;--shiki-default:#F07178;--shiki-default-font-weight:bold;--shiki-dark:#F07178;--shiki-dark-font-weight:bold",[617],{"type":54,"value":618},"Total Queries",{"type":41,"tag":557,"props":620,"children":621},{"style":609},[622],{"type":54,"value":623},"**",{"type":41,"tag":557,"props":625,"children":627},{"style":626},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[628],{"type":54,"value":629},": 10\n",{"type":41,"tag":557,"props":631,"children":633},{"class":559,"line":632},5,[634,638,642,647,651],{"type":41,"tag":557,"props":635,"children":636},{"style":564},[637],{"type":54,"value":606},{"type":41,"tag":557,"props":639,"children":640},{"style":609},[641],{"type":54,"value":612},{"type":41,"tag":557,"props":643,"children":644},{"style":615},[645],{"type":54,"value":646},"Passed",{"type":41,"tag":557,"props":648,"children":649},{"style":609},[650],{"type":54,"value":623},{"type":41,"tag":557,"props":652,"children":653},{"style":626},[654],{"type":54,"value":655},": 7\n",{"type":41,"tag":557,"props":657,"children":659},{"class":559,"line":658},6,[660,664,668,673,677],{"type":41,"tag":557,"props":661,"children":662},{"style":564},[663],{"type":54,"value":606},{"type":41,"tag":557,"props":665,"children":666},{"style":609},[667],{"type":54,"value":612},{"type":41,"tag":557,"props":669,"children":670},{"style":615},[671],{"type":54,"value":672},"Failed",{"type":41,"tag":557,"props":674,"children":675},{"style":609},[676],{"type":54,"value":623},{"type":41,"tag":557,"props":678,"children":679},{"style":626},[680],{"type":54,"value":681},": 3\n",{"type":41,"tag":557,"props":683,"children":685},{"class":559,"line":684},7,[686,690,694,699,703],{"type":41,"tag":557,"props":687,"children":688},{"style":564},[689],{"type":54,"value":606},{"type":41,"tag":557,"props":691,"children":692},{"style":609},[693],{"type":54,"value":612},{"type":41,"tag":557,"props":695,"children":696},{"style":615},[697],{"type":54,"value":698},"Pass Rate",{"type":41,"tag":557,"props":700,"children":701},{"style":609},[702],{"type":54,"value":623},{"type":41,"tag":557,"props":704,"children":705},{"style":626},[706],{"type":54,"value":707},": 70%\n",{"type":41,"tag":557,"props":709,"children":711},{"class":559,"line":710},8,[712],{"type":41,"tag":557,"props":713,"children":714},{"emptyLinePlaceholder":580},[715],{"type":54,"value":583},{"type":41,"tag":557,"props":717,"children":719},{"class":559,"line":718},9,[720,724],{"type":41,"tag":557,"props":721,"children":722},{"style":564},[723],{"type":54,"value":592},{"type":41,"tag":557,"props":725,"children":726},{"style":570},[727],{"type":54,"value":728},"Failed Queries Detail\n",{"type":41,"tag":557,"props":730,"children":732},{"class":559,"line":731},10,[733],{"type":41,"tag":557,"props":734,"children":735},{"emptyLinePlaceholder":580},[736],{"type":54,"value":583},{"type":41,"tag":557,"props":738,"children":739},{"class":559,"line":28},[740,745],{"type":41,"tag":557,"props":741,"children":742},{"style":564},[743],{"type":54,"value":744},"### ",{"type":41,"tag":557,"props":746,"children":747},{"style":570},[748],{"type":54,"value":749},"Query 1: \"How many users registered in 2023?\"\n",{"type":41,"tag":557,"props":751,"children":753},{"class":559,"line":752},12,[754,758,762,767,771,776,781,787],{"type":41,"tag":557,"props":755,"children":756},{"style":564},[757],{"type":54,"value":606},{"type":41,"tag":557,"props":759,"children":760},{"style":609},[761],{"type":54,"value":612},{"type":41,"tag":557,"props":763,"children":764},{"style":615},[765],{"type":54,"value":766},"Error Category",{"type":41,"tag":557,"props":768,"children":769},{"style":609},[770],{"type":54,"value":623},{"type":41,"tag":557,"props":772,"children":773},{"style":626},[774],{"type":54,"value":775},": ",{"type":41,"tag":557,"props":777,"children":778},{"style":564},[779],{"type":54,"value":780},"`",{"type":41,"tag":557,"props":782,"children":784},{"style":783},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[785],{"type":54,"value":786},"[FilterError]",{"type":41,"tag":557,"props":788,"children":789},{"style":564},[790],{"type":54,"value":791},"`\n",{"type":41,"tag":557,"props":793,"children":795},{"class":559,"line":794},13,[796,800,804,809,813,817,821,826],{"type":41,"tag":557,"props":797,"children":798},{"style":564},[799],{"type":54,"value":606},{"type":41,"tag":557,"props":801,"children":802},{"style":609},[803],{"type":54,"value":612},{"type":41,"tag":557,"props":805,"children":806},{"style":615},[807],{"type":54,"value":808},"Expected SQL",{"type":41,"tag":557,"props":810,"children":811},{"style":609},[812],{"type":54,"value":623},{"type":41,"tag":557,"props":814,"children":815},{"style":626},[816],{"type":54,"value":775},{"type":41,"tag":557,"props":818,"children":819},{"style":564},[820],{"type":54,"value":780},{"type":41,"tag":557,"props":822,"children":823},{"style":783},[824],{"type":54,"value":825},"SELECT count(*) FROM users WHERE year = 2023",{"type":41,"tag":557,"props":827,"children":828},{"style":564},[829],{"type":54,"value":791},{"type":41,"tag":557,"props":831,"children":833},{"class":559,"line":832},14,[834,838,842,847,851,855,859,864,868],{"type":41,"tag":557,"props":835,"children":836},{"style":564},[837],{"type":54,"value":606},{"type":41,"tag":557,"props":839,"children":840},{"style":609},[841],{"type":54,"value":612},{"type":41,"tag":557,"props":843,"children":844},{"style":615},[845],{"type":54,"value":846},"Actual SQL",{"type":41,"tag":557,"props":848,"children":849},{"style":609},[850],{"type":54,"value":623},{"type":41,"tag":557,"props":852,"children":853},{"style":626},[854],{"type":54,"value":775},{"type":41,"tag":557,"props":856,"children":857},{"style":564},[858],{"type":54,"value":780},{"type":41,"tag":557,"props":860,"children":861},{"style":783},[862],{"type":54,"value":863},"SELECT count(*) FROM users",{"type":41,"tag":557,"props":865,"children":866},{"style":564},[867],{"type":54,"value":780},{"type":41,"tag":557,"props":869,"children":870},{"style":626},[871],{"type":54,"value":872}," (Missing filter)\n",{"type":41,"tag":557,"props":874,"children":876},{"class":559,"line":875},15,[877,881,885,890,894,899,903,908,912],{"type":41,"tag":557,"props":878,"children":879},{"style":564},[880],{"type":54,"value":606},{"type":41,"tag":557,"props":882,"children":883},{"style":609},[884],{"type":54,"value":612},{"type":41,"tag":557,"props":886,"children":887},{"style":615},[888],{"type":54,"value":889},"Root Cause",{"type":41,"tag":557,"props":891,"children":892},{"style":609},[893],{"type":54,"value":623},{"type":41,"tag":557,"props":895,"children":896},{"style":626},[897],{"type":54,"value":898},": The LLM did not know about the ",{"type":41,"tag":557,"props":900,"children":901},{"style":564},[902],{"type":54,"value":780},{"type":41,"tag":557,"props":904,"children":905},{"style":783},[906],{"type":54,"value":907},"year",{"type":41,"tag":557,"props":909,"children":910},{"style":564},[911],{"type":54,"value":780},{"type":41,"tag":557,"props":913,"children":914},{"style":626},[915],{"type":54,"value":916}," column or how to filter by year for this entity.\n",{"type":41,"tag":557,"props":918,"children":920},{"class":559,"line":919},16,[921,925,929,934,938],{"type":41,"tag":557,"props":922,"children":923},{"style":564},[924],{"type":54,"value":606},{"type":41,"tag":557,"props":926,"children":927},{"style":609},[928],{"type":54,"value":612},{"type":41,"tag":557,"props":930,"children":931},{"style":615},[932],{"type":54,"value":933},"Proposed Mutation",{"type":41,"tag":557,"props":935,"children":936},{"style":609},[937],{"type":54,"value":623},{"type":41,"tag":557,"props":939,"children":940},{"style":626},[941],{"type":54,"value":942},": Add a facet for \"Users by Year\".\n",{"type":41,"tag":557,"props":944,"children":946},{"class":559,"line":945},17,[947],{"type":41,"tag":557,"props":948,"children":949},{"emptyLinePlaceholder":580},[950],{"type":54,"value":583},{"type":41,"tag":557,"props":952,"children":954},{"class":559,"line":953},18,[955,959],{"type":41,"tag":557,"props":956,"children":957},{"style":564},[958],{"type":54,"value":744},{"type":41,"tag":557,"props":960,"children":961},{"style":570},[962],{"type":54,"value":963},"Query 2: \"Show me top selling products\"\n",{"type":41,"tag":557,"props":965,"children":967},{"class":559,"line":966},19,[968,972,976,980,984,988,992,997],{"type":41,"tag":557,"props":969,"children":970},{"style":564},[971],{"type":54,"value":606},{"type":41,"tag":557,"props":973,"children":974},{"style":609},[975],{"type":54,"value":612},{"type":41,"tag":557,"props":977,"children":978},{"style":615},[979],{"type":54,"value":766},{"type":41,"tag":557,"props":981,"children":982},{"style":609},[983],{"type":54,"value":623},{"type":41,"tag":557,"props":985,"children":986},{"style":626},[987],{"type":54,"value":775},{"type":41,"tag":557,"props":989,"children":990},{"style":564},[991],{"type":54,"value":780},{"type":41,"tag":557,"props":993,"children":994},{"style":783},[995],{"type":54,"value":996},"[OrderingError]",{"type":41,"tag":557,"props":998,"children":999},{"style":564},[1000],{"type":54,"value":791},{"type":41,"tag":557,"props":1002,"children":1004},{"class":559,"line":1003},20,[1005,1009,1013,1017,1021,1025,1029,1034],{"type":41,"tag":557,"props":1006,"children":1007},{"style":564},[1008],{"type":54,"value":606},{"type":41,"tag":557,"props":1010,"children":1011},{"style":609},[1012],{"type":54,"value":612},{"type":41,"tag":557,"props":1014,"children":1015},{"style":615},[1016],{"type":54,"value":808},{"type":41,"tag":557,"props":1018,"children":1019},{"style":609},[1020],{"type":54,"value":623},{"type":41,"tag":557,"props":1022,"children":1023},{"style":626},[1024],{"type":54,"value":775},{"type":41,"tag":557,"props":1026,"children":1027},{"style":564},[1028],{"type":54,"value":780},{"type":41,"tag":557,"props":1030,"children":1031},{"style":783},[1032],{"type":54,"value":1033},"SELECT name FROM products ORDER BY sales DESC LIMIT 5",{"type":41,"tag":557,"props":1035,"children":1036},{"style":564},[1037],{"type":54,"value":791},{"type":41,"tag":557,"props":1039,"children":1041},{"class":559,"line":1040},21,[1042,1046,1050,1054,1058,1062,1066,1071],{"type":41,"tag":557,"props":1043,"children":1044},{"style":564},[1045],{"type":54,"value":606},{"type":41,"tag":557,"props":1047,"children":1048},{"style":609},[1049],{"type":54,"value":612},{"type":41,"tag":557,"props":1051,"children":1052},{"style":615},[1053],{"type":54,"value":846},{"type":41,"tag":557,"props":1055,"children":1056},{"style":609},[1057],{"type":54,"value":623},{"type":41,"tag":557,"props":1059,"children":1060},{"style":626},[1061],{"type":54,"value":775},{"type":41,"tag":557,"props":1063,"children":1064},{"style":564},[1065],{"type":54,"value":780},{"type":41,"tag":557,"props":1067,"children":1068},{"style":783},[1069],{"type":54,"value":1070},"SELECT name FROM products LIMIT 5",{"type":41,"tag":557,"props":1072,"children":1073},{"style":564},[1074],{"type":54,"value":791},{"type":41,"tag":557,"props":1076,"children":1078},{"class":559,"line":1077},22,[1079,1083,1087,1091,1095],{"type":41,"tag":557,"props":1080,"children":1081},{"style":564},[1082],{"type":54,"value":606},{"type":41,"tag":557,"props":1084,"children":1085},{"style":609},[1086],{"type":54,"value":612},{"type":41,"tag":557,"props":1088,"children":1089},{"style":615},[1090],{"type":54,"value":889},{"type":41,"tag":557,"props":1092,"children":1093},{"style":609},[1094],{"type":54,"value":623},{"type":41,"tag":557,"props":1096,"children":1097},{"style":626},[1098],{"type":54,"value":1099},": Missing ordering instruction in context.\n",{"type":41,"tag":557,"props":1101,"children":1103},{"class":559,"line":1102},23,[1104,1108,1112,1116,1120],{"type":41,"tag":557,"props":1105,"children":1106},{"style":564},[1107],{"type":54,"value":606},{"type":41,"tag":557,"props":1109,"children":1110},{"style":609},[1111],{"type":54,"value":612},{"type":41,"tag":557,"props":1113,"children":1114},{"style":615},[1115],{"type":54,"value":933},{"type":41,"tag":557,"props":1117,"children":1118},{"style":609},[1119],{"type":54,"value":623},{"type":41,"tag":557,"props":1121,"children":1122},{"style":626},[1123],{"type":54,"value":1124},": Update the template for \"Product Sales\" to include ordering.\n",{"type":41,"tag":557,"props":1126,"children":1128},{"class":559,"line":1127},24,[1129],{"type":41,"tag":557,"props":1130,"children":1131},{"emptyLinePlaceholder":580},[1132],{"type":54,"value":583},{"type":41,"tag":557,"props":1134,"children":1136},{"class":559,"line":1135},25,[1137,1141],{"type":41,"tag":557,"props":1138,"children":1139},{"style":564},[1140],{"type":54,"value":744},{"type":41,"tag":557,"props":1142,"children":1143},{"style":570},[1144],{"type":54,"value":1145},"Query 3: \"Get users older than 30\"\n",{"type":41,"tag":557,"props":1147,"children":1149},{"class":559,"line":1148},26,[1150,1154,1158,1162,1166,1170,1174,1179],{"type":41,"tag":557,"props":1151,"children":1152},{"style":564},[1153],{"type":54,"value":606},{"type":41,"tag":557,"props":1155,"children":1156},{"style":609},[1157],{"type":54,"value":612},{"type":41,"tag":557,"props":1159,"children":1160},{"style":615},[1161],{"type":54,"value":766},{"type":41,"tag":557,"props":1163,"children":1164},{"style":609},[1165],{"type":54,"value":623},{"type":41,"tag":557,"props":1167,"children":1168},{"style":626},[1169],{"type":54,"value":775},{"type":41,"tag":557,"props":1171,"children":1172},{"style":564},[1173],{"type":54,"value":780},{"type":41,"tag":557,"props":1175,"children":1176},{"style":783},[1177],{"type":54,"value":1178},"[GoldenDataError]",{"type":41,"tag":557,"props":1180,"children":1181},{"style":564},[1182],{"type":54,"value":791},{"type":41,"tag":557,"props":1184,"children":1186},{"class":559,"line":1185},27,[1187,1191,1195,1199,1203,1207,1211,1216,1220,1225,1229,1234,1238],{"type":41,"tag":557,"props":1188,"children":1189},{"style":564},[1190],{"type":54,"value":606},{"type":41,"tag":557,"props":1192,"children":1193},{"style":609},[1194],{"type":54,"value":612},{"type":41,"tag":557,"props":1196,"children":1197},{"style":615},[1198],{"type":54,"value":808},{"type":41,"tag":557,"props":1200,"children":1201},{"style":609},[1202],{"type":54,"value":623},{"type":41,"tag":557,"props":1204,"children":1205},{"style":626},[1206],{"type":54,"value":775},{"type":41,"tag":557,"props":1208,"children":1209},{"style":564},[1210],{"type":54,"value":780},{"type":41,"tag":557,"props":1212,"children":1213},{"style":783},[1214],{"type":54,"value":1215},"SELECT * FROM users WHERE age >> 30",{"type":41,"tag":557,"props":1217,"children":1218},{"style":564},[1219],{"type":54,"value":780},{"type":41,"tag":557,"props":1221,"children":1222},{"style":626},[1223],{"type":54,"value":1224}," (Syntax error ",{"type":41,"tag":557,"props":1226,"children":1227},{"style":564},[1228],{"type":54,"value":780},{"type":41,"tag":557,"props":1230,"children":1231},{"style":783},[1232],{"type":54,"value":1233},">>",{"type":41,"tag":557,"props":1235,"children":1236},{"style":564},[1237],{"type":54,"value":780},{"type":41,"tag":557,"props":1239,"children":1240},{"style":626},[1241],{"type":54,"value":1242}," in golden SQL)\n",{"type":41,"tag":557,"props":1244,"children":1246},{"class":559,"line":1245},28,[1247,1251,1255,1259,1263,1267,1271,1276],{"type":41,"tag":557,"props":1248,"children":1249},{"style":564},[1250],{"type":54,"value":606},{"type":41,"tag":557,"props":1252,"children":1253},{"style":609},[1254],{"type":54,"value":612},{"type":41,"tag":557,"props":1256,"children":1257},{"style":615},[1258],{"type":54,"value":846},{"type":41,"tag":557,"props":1260,"children":1261},{"style":609},[1262],{"type":54,"value":623},{"type":41,"tag":557,"props":1264,"children":1265},{"style":626},[1266],{"type":54,"value":775},{"type":41,"tag":557,"props":1268,"children":1269},{"style":564},[1270],{"type":54,"value":780},{"type":41,"tag":557,"props":1272,"children":1273},{"style":783},[1274],{"type":54,"value":1275},"SELECT * FROM users WHERE age > 30",{"type":41,"tag":557,"props":1277,"children":1278},{"style":564},[1279],{"type":54,"value":791},{"type":41,"tag":557,"props":1281,"children":1283},{"class":559,"line":1282},29,[1284,1288,1292,1296,1300],{"type":41,"tag":557,"props":1285,"children":1286},{"style":564},[1287],{"type":54,"value":606},{"type":41,"tag":557,"props":1289,"children":1290},{"style":609},[1291],{"type":54,"value":612},{"type":41,"tag":557,"props":1293,"children":1294},{"style":615},[1295],{"type":54,"value":889},{"type":41,"tag":557,"props":1297,"children":1298},{"style":609},[1299],{"type":54,"value":623},{"type":41,"tag":557,"props":1301,"children":1302},{"style":626},[1303],{"type":54,"value":1304},": Invalid syntax in golden dataset.\n",{"type":41,"tag":557,"props":1306,"children":1308},{"class":559,"line":1307},30,[1309,1313,1317,1321,1325],{"type":41,"tag":557,"props":1310,"children":1311},{"style":564},[1312],{"type":54,"value":606},{"type":41,"tag":557,"props":1314,"children":1315},{"style":609},[1316],{"type":54,"value":612},{"type":41,"tag":557,"props":1318,"children":1319},{"style":615},[1320],{"type":54,"value":933},{"type":41,"tag":557,"props":1322,"children":1323},{"style":609},[1324],{"type":54,"value":623},{"type":41,"tag":557,"props":1326,"children":1327},{"style":626},[1328],{"type":54,"value":1329},": None. Flag to user to fix the evaluation dataset.\n",{"type":41,"tag":109,"props":1331,"children":1332},{},[1333,1338,1340,1345,1347,1353],{"type":41,"tag":50,"props":1334,"children":1335},{},[1336],{"type":54,"value":1337},"Save Report",{"type":54,"value":1339},": You ",{"type":41,"tag":50,"props":1341,"children":1342},{},[1343],{"type":54,"value":1344},"MUST",{"type":54,"value":1346}," physically write the report file to ",{"type":41,"tag":57,"props":1348,"children":1350},{"className":1349},[],[1351],{"type":54,"value":1352},"autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fgap_analysis_vN.md",{"type":54,"value":1354},". If you are processing in batches, ensure you append to this file until all failed queries are documented. Do not merely output it in chat; it must exist on the file system.",{"type":41,"tag":109,"props":1356,"children":1357},{},[1358,1363,1364],{"type":41,"tag":50,"props":1359,"children":1360},{},[1361],{"type":54,"value":1362},"Log in State Tracking",{"type":54,"value":361},{"type":41,"tag":120,"props":1365,"children":1366},{},[1367],{"type":41,"tag":109,"props":1368,"children":1369},{},[1370,1372,1377,1379,1384],{"type":54,"value":1371},"Update ",{"type":41,"tag":57,"props":1373,"children":1375},{"className":1374},[],[1376],{"type":54,"value":141},{"type":54,"value":1378}," to record the mapping for Loop ",{"type":41,"tag":57,"props":1380,"children":1382},{"className":1381},[],[1383],{"type":54,"value":235},{"type":54,"value":1385}," (Base Context \u003C-> Eval Report \u003C-> Gap Analysis).",{"type":41,"tag":109,"props":1387,"children":1388},{},[1389,1394,1395],{"type":41,"tag":50,"props":1390,"children":1391},{},[1392],{"type":54,"value":1393},"Human-in-the-Loop Review",{"type":54,"value":361},{"type":41,"tag":120,"props":1396,"children":1397},{},[1398,1403,1408],{"type":41,"tag":109,"props":1399,"children":1400},{},[1401],{"type":54,"value":1402},"Inform the user that the Gap Analysis report has been successfully written to disk.",{"type":41,"tag":109,"props":1404,"children":1405},{},[1406],{"type":54,"value":1407},"Ask the user if they want to review, make any corrections, or add manual feedback directly to the file before proceeding to Phase 2 (Context Mutation).",{"type":41,"tag":109,"props":1409,"children":1410},{},[1411],{"type":54,"value":1412},"Wait for user confirmation before starting Phase 2.",{"type":41,"tag":341,"props":1414,"children":1415},{},[],{"type":41,"tag":98,"props":1417,"children":1419},{"id":1418},"_3-phase-2-context-mutation",[1420],{"type":54,"value":1421},"3. Phase 2: Context Mutation",{"type":41,"tag":46,"props":1423,"children":1424},{},[1425,1427,1434],{"type":54,"value":1426},"Refer to ",{"type":41,"tag":1428,"props":1429,"children":1431},"a",{"href":1430},"..\u002Fcontext-generation-guide\u002FSKILL.md",[1432],{"type":54,"value":1433},"context-generation-guide",{"type":54,"value":1435}," for how to edit a ContextSet.",{"type":41,"tag":105,"props":1437,"children":1438},{},[1439,1456,1574,1730],{"type":41,"tag":109,"props":1440,"children":1441},{},[1442,1446,1448,1454],{"type":41,"tag":50,"props":1443,"children":1444},{},[1445],{"type":54,"value":116},{"type":54,"value":1447},": Verify that ",{"type":41,"tag":57,"props":1449,"children":1451},{"className":1450},[],[1452],{"type":54,"value":1453},"gap_analysis_vN.md",{"type":54,"value":1455}," exists and contains findings. Verify the base ContextSet file exists. If missing, STOP and inform the user.",{"type":41,"tag":109,"props":1457,"children":1458},{},[1459,1464,1465],{"type":41,"tag":50,"props":1460,"children":1461},{},[1462],{"type":54,"value":1463},"Analyze Gap Report & Determine Fixing Strategy",{"type":54,"value":118},{"type":41,"tag":120,"props":1466,"children":1467},{},[1468,1480],{"type":41,"tag":109,"props":1469,"children":1470},{},[1471,1473,1478],{"type":54,"value":1472},"Read ",{"type":41,"tag":57,"props":1474,"children":1476},{"className":1475},[],[1477],{"type":54,"value":1453},{"type":54,"value":1479}," to identify what needs to be fixed.",{"type":41,"tag":109,"props":1481,"children":1482},{},[1483,1488,1489],{"type":41,"tag":50,"props":1484,"children":1485},{},[1486],{"type":54,"value":1487},"Fixing Strategy Guidelines",{"type":54,"value":118},{"type":41,"tag":120,"props":1490,"children":1491},{},[1492,1517,1543],{"type":41,"tag":109,"props":1493,"children":1494},{},[1495,1500,1502,1508,1510,1515],{"type":41,"tag":50,"props":1496,"children":1497},{},[1498],{"type":54,"value":1499},"Conciseness",{"type":54,"value":1501},": Try to use ",{"type":41,"tag":1503,"props":1504,"children":1505},"em",{},[1506],{"type":54,"value":1507},"less context",{"type":54,"value":1509}," to cover ",{"type":41,"tag":1503,"props":1511,"children":1512},{},[1513],{"type":54,"value":1514},"more scenarios",{"type":54,"value":1516},". Avoid adding redundant or hyper-specific templates for every single edge case.",{"type":41,"tag":109,"props":1518,"children":1519},{},[1520,1525,1527,1533,1535,1541],{"type":41,"tag":50,"props":1521,"children":1522},{},[1523],{"type":54,"value":1524},"Generalizability",{"type":54,"value":1526},": Prefer solutions that generalize well (e.g., use a ",{"type":41,"tag":57,"props":1528,"children":1530},{"className":1529},[],[1531],{"type":54,"value":1532},"facet",{"type":54,"value":1534}," for a column definition rather than a specific ",{"type":41,"tag":57,"props":1536,"children":1538},{"className":1537},[],[1539],{"type":54,"value":1540},"template",{"type":54,"value":1542}," for every query using that column).",{"type":41,"tag":109,"props":1544,"children":1545},{},[1546,1551,1553,1558,1559,1564,1566,1572],{"type":41,"tag":50,"props":1547,"children":1548},{},[1549],{"type":54,"value":1550},"Supported Types",{"type":54,"value":1552},": Support mutations for ",{"type":41,"tag":57,"props":1554,"children":1556},{"className":1555},[],[1557],{"type":54,"value":1540},{"type":54,"value":420},{"type":41,"tag":57,"props":1560,"children":1562},{"className":1561},[],[1563],{"type":54,"value":1532},{"type":54,"value":1565},", and ",{"type":41,"tag":57,"props":1567,"children":1569},{"className":1568},[],[1570],{"type":54,"value":1571},"value_search",{"type":54,"value":1573}," types.",{"type":41,"tag":109,"props":1575,"children":1576},{},[1577,1582,1583],{"type":41,"tag":50,"props":1578,"children":1579},{},[1580],{"type":54,"value":1581},"Apply Mutations",{"type":54,"value":118},{"type":41,"tag":120,"props":1584,"children":1585},{},[1586,1603,1643,1690],{"type":41,"tag":109,"props":1587,"children":1588},{},[1589,1594,1596,1602],{"type":41,"tag":50,"props":1590,"children":1591},{},[1592],{"type":54,"value":1593},"Copy the Base Context",{"type":54,"value":1595},": Copy the base ContextSet file to the new destination: ",{"type":41,"tag":57,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":54,"value":1601},"autoctx\u002Fexperiments\u002F\u003Cexperiment_name>\u002Fhillclimb\u002Fimproved_context_vN.json",{"type":54,"value":192},{"type":41,"tag":109,"props":1604,"children":1605},{},[1606,1611,1613],{"type":41,"tag":50,"props":1607,"children":1608},{},[1609],{"type":54,"value":1610},"Generate New Items",{"type":54,"value":1612},": For any new context items identified in the fixing strategy (for \"add\" operations):\n",{"type":41,"tag":120,"props":1614,"children":1615},{},[1616,1633,1638],{"type":41,"tag":109,"props":1617,"children":1618},{},[1619,1631],{"type":41,"tag":50,"props":1620,"children":1621},{},[1622,1624,1629],{"type":54,"value":1623},"Invoke the ",{"type":41,"tag":57,"props":1625,"children":1627},{"className":1626},[],[1628],{"type":54,"value":1433},{"type":54,"value":1630}," skill",{"type":54,"value":1632}," to produce the final parameterized items.",{"type":41,"tag":109,"props":1634,"children":1635},{},[1636],{"type":54,"value":1637},"Provide the identified candidates to that skill.",{"type":41,"tag":109,"props":1639,"children":1640},{},[1641],{"type":54,"value":1642},"That skill will handle phrase extraction, parameterization, and constructing the valid JSON structure.",{"type":41,"tag":109,"props":1644,"children":1645},{},[1646,1651,1652],{"type":41,"tag":50,"props":1647,"children":1648},{},[1649],{"type":54,"value":1650},"Validate New Items",{"type":54,"value":118},{"type":41,"tag":120,"props":1653,"children":1654},{},[1655,1673],{"type":41,"tag":109,"props":1656,"children":1657},{},[1658,1663,1665,1671],{"type":41,"tag":50,"props":1659,"children":1660},{},[1661],{"type":54,"value":1662},"Templates",{"type":54,"value":1664},": Run generated SQL examples via ",{"type":41,"tag":57,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":54,"value":1670},"\u003Csource>-execute-sql",{"type":54,"value":1672}," (use dummy values for placeholders) to verify syntax.",{"type":41,"tag":109,"props":1674,"children":1675},{},[1676,1681,1683,1689],{"type":41,"tag":50,"props":1677,"children":1678},{},[1679],{"type":54,"value":1680},"Others",{"type":54,"value":1682},": Cross-check table\u002Fcolumn references against the schema via ",{"type":41,"tag":57,"props":1684,"children":1686},{"className":1685},[],[1687],{"type":54,"value":1688},"\u003Csource>-list-schemas",{"type":54,"value":192},{"type":41,"tag":109,"props":1691,"children":1692},{},[1693,1697,1699,1705,1707,1712,1714,1720,1722,1728],{"type":41,"tag":50,"props":1694,"children":1695},{},[1696],{"type":54,"value":1581},{"type":54,"value":1698},": Call the ",{"type":41,"tag":57,"props":1700,"children":1702},{"className":1701},[],[1703],{"type":54,"value":1704},"mutate_context_set",{"type":54,"value":1706}," MCP tool passing the ",{"type":41,"tag":50,"props":1708,"children":1709},{},[1710],{"type":54,"value":1711},"new",{"type":54,"value":1713}," file path as ",{"type":41,"tag":57,"props":1715,"children":1717},{"className":1716},[],[1718],{"type":54,"value":1719},"file_path",{"type":54,"value":1721}," and mutations as ",{"type":41,"tag":57,"props":1723,"children":1725},{"className":1724},[],[1726],{"type":54,"value":1727},"mutations_json",{"type":54,"value":1729}," to mutate the context set.",{"type":41,"tag":109,"props":1731,"children":1732},{},[1733,1737,1738],{"type":41,"tag":50,"props":1734,"children":1735},{},[1736],{"type":54,"value":1362},{"type":54,"value":118},{"type":41,"tag":120,"props":1739,"children":1740},{},[1741],{"type":41,"tag":109,"props":1742,"children":1743},{},[1744,1745,1750,1752,1758,1760,1765],{"type":54,"value":1371},{"type":41,"tag":57,"props":1746,"children":1748},{"className":1747},[],[1749],{"type":54,"value":141},{"type":54,"value":1751}," to include the output path of ",{"type":41,"tag":57,"props":1753,"children":1755},{"className":1754},[],[1756],{"type":54,"value":1757},"improved_context_vN.json",{"type":54,"value":1759}," for Loop ",{"type":41,"tag":57,"props":1761,"children":1763},{"className":1762},[],[1764],{"type":54,"value":235},{"type":54,"value":192},{"type":41,"tag":341,"props":1767,"children":1768},{},[],{"type":41,"tag":98,"props":1770,"children":1772},{"id":1771},"_4-validation-upload-advice",[1773],{"type":54,"value":1774},"4. Validation & Upload Advice",{"type":41,"tag":105,"props":1776,"children":1777},{},[1778,1788,1855],{"type":41,"tag":109,"props":1779,"children":1780},{},[1781,1786],{"type":41,"tag":50,"props":1782,"children":1783},{},[1784],{"type":54,"value":1785},"Summarize Improvements",{"type":54,"value":1787},": Tell the user what was changed (e.g., added 2 facets, updated 1 template).",{"type":41,"tag":109,"props":1789,"children":1790},{},[1791,1796,1797],{"type":41,"tag":50,"props":1792,"children":1793},{},[1794],{"type":54,"value":1795},"Upload Instructions",{"type":54,"value":118},{"type":41,"tag":120,"props":1798,"children":1799},{},[1800,1826,1843],{"type":41,"tag":109,"props":1801,"children":1802},{},[1803,1808,1810,1816,1818,1824],{"type":41,"tag":50,"props":1804,"children":1805},{},[1806],{"type":54,"value":1807},"Read Database Details",{"type":54,"value":1809},": Read ",{"type":41,"tag":57,"props":1811,"children":1813},{"className":1812},[],[1814],{"type":54,"value":1815},"autoctx\u002Ftools.yaml",{"type":54,"value":1817}," (or ",{"type":41,"tag":57,"props":1819,"children":1821},{"className":1820},[],[1822],{"type":54,"value":1823},"db_config.yaml",{"type":54,"value":1825},") to fetch the specific project, location, and instance\u002Fcluster details for the active database.",{"type":41,"tag":109,"props":1827,"children":1828},{},[1829,1834,1835,1841],{"type":41,"tag":50,"props":1830,"children":1831},{},[1832],{"type":54,"value":1833},"Generate URL",{"type":54,"value":1698},{"type":41,"tag":57,"props":1836,"children":1838},{"className":1837},[],[1839],{"type":54,"value":1840},"generate_upload_url",{"type":54,"value":1842}," tool passing the extracted values to provide the direct console link to the user.",{"type":41,"tag":109,"props":1844,"children":1845},{},[1846,1848,1853],{"type":54,"value":1847},"Present the local file path to ",{"type":41,"tag":57,"props":1849,"children":1851},{"className":1850},[],[1852],{"type":54,"value":1757},{"type":54,"value":1854}," and the generated console link together in a single clear message.",{"type":41,"tag":109,"props":1856,"children":1857},{},[1858,1863,1864],{"type":41,"tag":50,"props":1859,"children":1860},{},[1861],{"type":54,"value":1862},"Instruct Next Step Evaluation",{"type":54,"value":118},{"type":41,"tag":120,"props":1865,"children":1866},{},[1867],{"type":41,"tag":109,"props":1868,"children":1869},{},[1870,1872,1877],{"type":54,"value":1871},"Instruct the user to run evaluation using the evaluating workflow on this new ContextSet to see if metrics improve. This will start Loop ",{"type":41,"tag":57,"props":1873,"children":1875},{"className":1874},[],[1876],{"type":54,"value":251},{"type":54,"value":192},{"type":41,"tag":341,"props":1879,"children":1880},{},[],{"type":41,"tag":75,"props":1882,"children":1884},{"id":1883},"output",[1885],{"type":54,"value":1886},"Output",{"type":41,"tag":46,"props":1888,"children":1889},{},[1890],{"type":54,"value":1891},"Upon successful completion, the workspace must contain:",{"type":41,"tag":120,"props":1893,"children":1894},{},[1895,1903,1911],{"type":41,"tag":109,"props":1896,"children":1897},{},[1898],{"type":41,"tag":57,"props":1899,"children":1901},{"className":1900},[],[1902],{"type":54,"value":1352},{"type":41,"tag":109,"props":1904,"children":1905},{},[1906],{"type":41,"tag":57,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":54,"value":1601},{"type":41,"tag":109,"props":1912,"children":1913},{},[1914,1916,1921],{"type":54,"value":1915},"Updated ",{"type":41,"tag":57,"props":1917,"children":1919},{"className":1918},[],[1920],{"type":54,"value":141},{"type":54,"value":1922}," summarizing the run loop.",{"type":41,"tag":341,"props":1924,"children":1925},{},[],{"type":41,"tag":75,"props":1927,"children":1929},{"id":1928},"logging-state-example-autoctxstatemd",[1930,1932,1937],{"type":54,"value":1931},"Logging State Example (",{"type":41,"tag":57,"props":1933,"children":1935},{"className":1934},[],[1936],{"type":54,"value":141},{"type":54,"value":1938},")",{"type":41,"tag":46,"props":1940,"children":1941},{},[1942,1944,1949,1951,1957],{"type":54,"value":1943},"When updating ",{"type":41,"tag":57,"props":1945,"children":1947},{"className":1946},[],[1948],{"type":54,"value":141},{"type":54,"value":1950},", please append or update the ",{"type":41,"tag":57,"props":1952,"children":1954},{"className":1953},[],[1955],{"type":54,"value":1956},"Hill-Climbing Run Log",{"type":54,"value":1958}," section:",{"type":41,"tag":546,"props":1960,"children":1962},{"className":548,"code":1961,"language":550,"meta":551,"style":551},"# Context Authoring Experiment State Tracking\n\n## Active Experiment: my-exp-1\n\n## Hill-Climbing Run Log\n\n### Loop: v1\n- **Base Context**: `baseline_context.json`\n- **Eval Report Path**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Feval_reports\u002F\u003Cjob_id_uuid>\u002F` (containing `configs.csv`, `evals.csv`, etc.)\n- **Gap Analysis**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fgap_analysis_v1.md`\n- **Mutated Context**: `autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fimproved_context_v1.json`\n",[1963],{"type":41,"tag":57,"props":1964,"children":1965},{"__ignoreMap":551},[1966,1978,1985,1997,2004,2016,2023,2035,2072,2148,2185],{"type":41,"tag":557,"props":1967,"children":1968},{"class":559,"line":560},[1969,1973],{"type":41,"tag":557,"props":1970,"children":1971},{"style":564},[1972],{"type":54,"value":567},{"type":41,"tag":557,"props":1974,"children":1975},{"style":570},[1976],{"type":54,"value":1977},"Context Authoring Experiment State Tracking\n",{"type":41,"tag":557,"props":1979,"children":1980},{"class":559,"line":576},[1981],{"type":41,"tag":557,"props":1982,"children":1983},{"emptyLinePlaceholder":580},[1984],{"type":54,"value":583},{"type":41,"tag":557,"props":1986,"children":1987},{"class":559,"line":586},[1988,1992],{"type":41,"tag":557,"props":1989,"children":1990},{"style":564},[1991],{"type":54,"value":592},{"type":41,"tag":557,"props":1993,"children":1994},{"style":570},[1995],{"type":54,"value":1996},"Active Experiment: my-exp-1\n",{"type":41,"tag":557,"props":1998,"children":1999},{"class":559,"line":600},[2000],{"type":41,"tag":557,"props":2001,"children":2002},{"emptyLinePlaceholder":580},[2003],{"type":54,"value":583},{"type":41,"tag":557,"props":2005,"children":2006},{"class":559,"line":632},[2007,2011],{"type":41,"tag":557,"props":2008,"children":2009},{"style":564},[2010],{"type":54,"value":592},{"type":41,"tag":557,"props":2012,"children":2013},{"style":570},[2014],{"type":54,"value":2015},"Hill-Climbing Run Log\n",{"type":41,"tag":557,"props":2017,"children":2018},{"class":559,"line":658},[2019],{"type":41,"tag":557,"props":2020,"children":2021},{"emptyLinePlaceholder":580},[2022],{"type":54,"value":583},{"type":41,"tag":557,"props":2024,"children":2025},{"class":559,"line":684},[2026,2030],{"type":41,"tag":557,"props":2027,"children":2028},{"style":564},[2029],{"type":54,"value":744},{"type":41,"tag":557,"props":2031,"children":2032},{"style":570},[2033],{"type":54,"value":2034},"Loop: v1\n",{"type":41,"tag":557,"props":2036,"children":2037},{"class":559,"line":710},[2038,2042,2046,2051,2055,2059,2063,2068],{"type":41,"tag":557,"props":2039,"children":2040},{"style":564},[2041],{"type":54,"value":606},{"type":41,"tag":557,"props":2043,"children":2044},{"style":609},[2045],{"type":54,"value":612},{"type":41,"tag":557,"props":2047,"children":2048},{"style":615},[2049],{"type":54,"value":2050},"Base Context",{"type":41,"tag":557,"props":2052,"children":2053},{"style":609},[2054],{"type":54,"value":623},{"type":41,"tag":557,"props":2056,"children":2057},{"style":626},[2058],{"type":54,"value":775},{"type":41,"tag":557,"props":2060,"children":2061},{"style":564},[2062],{"type":54,"value":780},{"type":41,"tag":557,"props":2064,"children":2065},{"style":783},[2066],{"type":54,"value":2067},"baseline_context.json",{"type":41,"tag":557,"props":2069,"children":2070},{"style":564},[2071],{"type":54,"value":791},{"type":41,"tag":557,"props":2073,"children":2074},{"class":559,"line":718},[2075,2079,2083,2088,2092,2096,2100,2105,2109,2114,2118,2122,2126,2130,2134,2139,2143],{"type":41,"tag":557,"props":2076,"children":2077},{"style":564},[2078],{"type":54,"value":606},{"type":41,"tag":557,"props":2080,"children":2081},{"style":609},[2082],{"type":54,"value":612},{"type":41,"tag":557,"props":2084,"children":2085},{"style":615},[2086],{"type":54,"value":2087},"Eval Report Path",{"type":41,"tag":557,"props":2089,"children":2090},{"style":609},[2091],{"type":54,"value":623},{"type":41,"tag":557,"props":2093,"children":2094},{"style":626},[2095],{"type":54,"value":775},{"type":41,"tag":557,"props":2097,"children":2098},{"style":564},[2099],{"type":54,"value":780},{"type":41,"tag":557,"props":2101,"children":2102},{"style":783},[2103],{"type":54,"value":2104},"autoctx\u002Fexperiments\u002Fmy-exp-1\u002Feval_reports\u002F\u003Cjob_id_uuid>\u002F",{"type":41,"tag":557,"props":2106,"children":2107},{"style":564},[2108],{"type":54,"value":780},{"type":41,"tag":557,"props":2110,"children":2111},{"style":626},[2112],{"type":54,"value":2113}," (containing ",{"type":41,"tag":557,"props":2115,"children":2116},{"style":564},[2117],{"type":54,"value":780},{"type":41,"tag":557,"props":2119,"children":2120},{"style":783},[2121],{"type":54,"value":397},{"type":41,"tag":557,"props":2123,"children":2124},{"style":564},[2125],{"type":54,"value":780},{"type":41,"tag":557,"props":2127,"children":2128},{"style":626},[2129],{"type":54,"value":420},{"type":41,"tag":557,"props":2131,"children":2132},{"style":564},[2133],{"type":54,"value":780},{"type":41,"tag":557,"props":2135,"children":2136},{"style":783},[2137],{"type":54,"value":2138},"evals.csv",{"type":41,"tag":557,"props":2140,"children":2141},{"style":564},[2142],{"type":54,"value":780},{"type":41,"tag":557,"props":2144,"children":2145},{"style":626},[2146],{"type":54,"value":2147},", etc.)\n",{"type":41,"tag":557,"props":2149,"children":2150},{"class":559,"line":731},[2151,2155,2159,2164,2168,2172,2176,2181],{"type":41,"tag":557,"props":2152,"children":2153},{"style":564},[2154],{"type":54,"value":606},{"type":41,"tag":557,"props":2156,"children":2157},{"style":609},[2158],{"type":54,"value":612},{"type":41,"tag":557,"props":2160,"children":2161},{"style":615},[2162],{"type":54,"value":2163},"Gap Analysis",{"type":41,"tag":557,"props":2165,"children":2166},{"style":609},[2167],{"type":54,"value":623},{"type":41,"tag":557,"props":2169,"children":2170},{"style":626},[2171],{"type":54,"value":775},{"type":41,"tag":557,"props":2173,"children":2174},{"style":564},[2175],{"type":54,"value":780},{"type":41,"tag":557,"props":2177,"children":2178},{"style":783},[2179],{"type":54,"value":2180},"autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fgap_analysis_v1.md",{"type":41,"tag":557,"props":2182,"children":2183},{"style":564},[2184],{"type":54,"value":791},{"type":41,"tag":557,"props":2186,"children":2187},{"class":559,"line":28},[2188,2192,2196,2201,2205,2209,2213,2218],{"type":41,"tag":557,"props":2189,"children":2190},{"style":564},[2191],{"type":54,"value":606},{"type":41,"tag":557,"props":2193,"children":2194},{"style":609},[2195],{"type":54,"value":612},{"type":41,"tag":557,"props":2197,"children":2198},{"style":615},[2199],{"type":54,"value":2200},"Mutated Context",{"type":41,"tag":557,"props":2202,"children":2203},{"style":609},[2204],{"type":54,"value":623},{"type":41,"tag":557,"props":2206,"children":2207},{"style":626},[2208],{"type":54,"value":775},{"type":41,"tag":557,"props":2210,"children":2211},{"style":564},[2212],{"type":54,"value":780},{"type":41,"tag":557,"props":2214,"children":2215},{"style":783},[2216],{"type":54,"value":2217},"autoctx\u002Fexperiments\u002Fmy-exp-1\u002Fhillclimb\u002Fimproved_context_v1.json",{"type":41,"tag":557,"props":2219,"children":2220},{"style":564},[2221],{"type":54,"value":791},{"type":41,"tag":42,"props":2223,"children":2224},{},[2225],{"type":41,"tag":46,"props":2226,"children":2227},{},[2228,2233,2238,2240,2245,2247,2252],{"type":41,"tag":557,"props":2229,"children":2230},{},[2231],{"type":54,"value":2232},"!IMPORTANT",{"type":41,"tag":50,"props":2234,"children":2235},{},[2236],{"type":54,"value":2237},"Tool Modification Rule",{"type":54,"value":2239},": Always use the ",{"type":41,"tag":57,"props":2241,"children":2243},{"className":2242},[],[2244],{"type":54,"value":1704},{"type":54,"value":2246}," tool for all ContextSet changes. Pass mutation payloads directly to the tool — it handles all file I\u002FO internally. ",{"type":41,"tag":50,"props":2248,"children":2249},{},[2250],{"type":54,"value":2251},"Do not read the target context set file beforehand",{"type":54,"value":192},{"type":41,"tag":2254,"props":2255,"children":2256},"style",{},[2257],{"type":54,"value":2258},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2260,"total":684},[2261,2278,2291,2302,2309,2324,2338],{"slug":2262,"name":2262,"fn":2263,"description":2264,"org":2265,"tags":2266,"stars":24,"repoUrl":25,"updatedAt":2277},"context-engineering-bootstrap","bootstrap initial ContextSet for database enrichment","Guides the agent to bootstrap an initial ContextSet (templates, facets, and value searches) by deducing key information from the database schema and generating a ContextSet file.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2267,2270,2273,2276],{"name":2268,"slug":2269,"type":16},"Context","context",{"name":2271,"slug":2272,"type":16},"Data Modeling","data-modeling",{"name":2274,"slug":2275,"type":16},"Database","database",{"name":9,"slug":8,"type":16},"2026-07-18T05:47:56.797107",{"slug":2279,"name":2279,"fn":2280,"description":2281,"org":2282,"tags":2283,"stars":24,"repoUrl":25,"updatedAt":2290},"context-engineering-dataset-generation","generate golden SQL evaluation datasets","Generate or expand a golden evaluation dataset of SQL\u002FQuestion (NLQ+SQL) pairs for evaluating NL-to-SQL translation accuracy on a target database.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2284,2285,2286,2287],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2288,"slug":2289,"type":16},"SQL","sql","2026-07-18T05:47:55.878915",{"slug":2292,"name":2292,"fn":2293,"description":2294,"org":2295,"tags":2296,"stars":24,"repoUrl":25,"updatedAt":2301},"context-engineering-evaluate","evaluate ContextSet against golden datasets","Guides the agent to execute an evaluation of a ContextSet against a golden NLQ+SQL dataset using the Evalbench framework.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2297,2298,2299,2300],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":2288,"slug":2289,"type":16},"2026-07-18T05:47:52.594607",{"slug":4,"name":4,"fn":5,"description":6,"org":2303,"tags":2304,"stars":24,"repoUrl":25,"updatedAt":26},{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2305,2306,2307,2308],{"name":18,"slug":19,"type":16},{"name":14,"slug":15,"type":16},{"name":9,"slug":8,"type":16},{"name":21,"slug":22,"type":16},{"slug":2310,"name":2310,"fn":2311,"description":2312,"org":2313,"tags":2314,"stars":24,"repoUrl":25,"updatedAt":2323},"context-engineering-init","initialize context engineering and database connections","Orchestrates the initialization workflow for context engineering, and provides helper workflow for setting up database connections by creating or updating tools.yaml configurations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2315,2318,2319,2322],{"name":2316,"slug":2317,"type":16},"Configuration","configuration",{"name":2274,"slug":2275,"type":16},{"name":2320,"slug":2321,"type":16},"Engineering","engineering",{"name":9,"slug":8,"type":16},"2026-07-18T05:47:59.493278",{"slug":62,"name":62,"fn":2325,"description":2326,"org":2327,"tags":2328,"stars":24,"repoUrl":25,"updatedAt":2337},"optimize context sets for Gemini data agents","Context engineering for Gemini Data Analytics API's data agent developer platform tools. Generates, evaluates, and iteratively optimizes a ContextSet (Templates, Facets, Value Searches) to maximize Natural-Language-to-SQL translation accuracy. Use this skill to run the automated setup, NL-SQL pair evaluation dataset generation and expansion, bootstrapping, scoring, and optimization pipeline. For manual authoring standards and schema syntax rules, see the context-generation-guide skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2329,2332,2333,2336],{"name":2330,"slug":2331,"type":16},"Agent Context","agent-context",{"name":18,"slug":19,"type":16},{"name":2334,"slug":2335,"type":16},"Gemini","gemini",{"name":9,"slug":8,"type":16},"2026-07-18T05:13:44.430929",{"slug":1433,"name":1433,"fn":2339,"description":2340,"org":2341,"tags":2342,"stars":24,"repoUrl":25,"updatedAt":2349},"generate context items for database enrichment","Guidelines and best practices for generating context items (Templates, Facets, Value Searches). Use this skill whenever the user asks to create, author, or generate context for database enrichment, or asks for examples and instructions on how to write templates, facets, or value searches. It helps bridge the gap between LLMs and structured databases. For running the automated generation, evaluation, and tuning lifecycle, see the context-engineering-workflow skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2343,2344,2345,2348],{"name":2330,"slug":2331,"type":16},{"name":2274,"slug":2275,"type":16},{"name":2346,"slug":2347,"type":16},"Documentation","documentation",{"name":9,"slug":8,"type":16},"2026-07-18T05:13:43.403052",{"items":2351,"total":2530},[2352,2368,2382,2402,2416,2427,2441,2458,2475,2488,2504,2514],{"slug":2353,"name":2353,"fn":2354,"description":2355,"org":2356,"tags":2357,"stars":2365,"repoUrl":2366,"updatedAt":2367},"kb-search","search and extract local knowledge base documents","Allows listing, searching and extracting information from local knowledge base documents for information about tables\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2358,2359,2362],{"name":2346,"slug":2347,"type":16},{"name":2360,"slug":2361,"type":16},"Knowledge Base","knowledge-base",{"name":2363,"slug":2364,"type":16},"Search","search",6749,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fknowledge-catalog","2026-07-12T07:38:52.157375",{"slug":2369,"name":2370,"fn":2371,"description":2372,"org":2373,"tags":2374,"stars":2365,"repoUrl":2366,"updatedAt":2381},"knowledgecatalogdiscoveryagent","knowledge_catalog_discovery_agent","search and rank Knowledge Catalog data entries","Analyzes user queries, extracts relevant predicates, and utilizes Knowledge Catalog Search to find and rank the most relevant data entries. Engages with the user throughout the process.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2375,2376,2377,2380],{"name":18,"slug":19,"type":16},{"name":9,"slug":8,"type":16},{"name":2378,"slug":2379,"type":16},"Knowledge Management","knowledge-management",{"name":2363,"slug":2364,"type":16},"2026-07-12T07:38:22.196851",{"slug":2383,"name":2383,"fn":2384,"description":2385,"org":2386,"tags":2387,"stars":2399,"repoUrl":2400,"updatedAt":2401},"contributing","contribute to Cloud Foundation Fabric","End-to-end workflow for contributing to Cloud Foundation Fabric: triaging GitHub issues, proactive feature development, validating with tests and Policy Troubleshooter, and submitting sanitized Pull Requests. Use when addressing a Fabric GitHub issue, developing a module or FAST stage change, or preparing a branch for a pull request.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2388,2391,2392,2395,2396],{"name":2389,"slug":2390,"type":16},"Automation","automation",{"name":2320,"slug":2321,"type":16},{"name":2393,"slug":2394,"type":16},"GitHub","github",{"name":9,"slug":8,"type":16},{"name":2397,"slug":2398,"type":16},"Pull Requests","pull-requests",2062,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fcloud-foundation-fabric","2026-07-31T06:23:36.935005",{"slug":2403,"name":2403,"fn":2404,"description":2405,"org":2406,"tags":2407,"stars":2399,"repoUrl":2400,"updatedAt":2415},"fabric-builder","generate Terraform code for Google Cloud","Generates idiomatic Cloud Foundation Fabric (CFF) Terraform code using CFF modules. Use when users ask to create GCP resources, use Fabric modules, or generate Terraform code for Google Cloud.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2408,2409,2412],{"name":9,"slug":8,"type":16},{"name":2410,"slug":2411,"type":16},"Infrastructure as Code","infrastructure-as-code",{"name":2413,"slug":2414,"type":16},"Terraform","terraform","2026-07-12T07:38:23.514555",{"slug":2417,"name":2417,"fn":2418,"description":2419,"org":2420,"tags":2421,"stars":2399,"repoUrl":2400,"updatedAt":2426},"fast-0-org-setup-prereqs","prepare prerequisites for FAST 0-org-setup","Guides the user step-by-step through the prerequisites for the FAST 0-org-setup stage, supporting both Standard GCP and Google Cloud Dedicated (GCD) environments. Use when a user asks to prepare or run prerequisites for 0-org-setup or bootstrap the FAST landing zone.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2422,2423],{"name":9,"slug":8,"type":16},{"name":2424,"slug":2425,"type":16},"Operations","operations","2026-07-12T07:38:28.127148",{"slug":2428,"name":2428,"fn":2429,"description":2430,"org":2431,"tags":2432,"stars":2438,"repoUrl":2439,"updatedAt":2440},"agent-aware-cli","design agent-aware command-line interfaces","Guide for designing and implementing command-line interfaces (CLIs) that are equally usable by human developers and automated coding agents. Use when the user wants to build a CLI, apply CLI best practices, or use Go with Cobra and Viper.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2433,2436,2437],{"name":2434,"slug":2435,"type":16},"CLI","cli",{"name":2320,"slug":2321,"type":16},{"name":9,"slug":8,"type":16},1150,"https:\u002F\u002Fgithub.com\u002FGoogleCloudPlatform\u002Fvertex-ai-creative-studio","2026-07-12T07:39:08.41406",{"slug":2442,"name":2442,"fn":2443,"description":2444,"org":2445,"tags":2446,"stars":2438,"repoUrl":2439,"updatedAt":2457},"build-mcp-genmedia","build and configure GenAI MCP servers","Builds the mcp-genmedia Go MCP servers (nanobanana, veo, lyria, gemini-multimodal, chirp3-hd, avtool) from source and wires them into settings.json. Use this skill whenever the MCP tools are missing or broken — typically at the start of a new session, after a container restart, or when \u002Ftmp has been wiped. The prebuilt binaries in \u002Fworkspace\u002F.local\u002Fbin\u002F have no exec bit and live on a noexec mount; this skill compiles fresh executables into \u002Ftmp\u002Fbin\u002F where execution is allowed.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2447,2450,2451,2454],{"name":2448,"slug":2449,"type":16},"API Development","api-development",{"name":9,"slug":8,"type":16},{"name":2452,"slug":2453,"type":16},"LLM","llm",{"name":2455,"slug":2456,"type":16},"MCP","mcp","2026-07-12T07:39:10.911302",{"slug":2459,"name":2459,"fn":2460,"description":2461,"org":2462,"tags":2463,"stars":2438,"repoUrl":2439,"updatedAt":2474},"genmedia-audio-engineer","synthesize and mix audio content","Expert in audio synthesis, music generation, and mixing. Use when creating podcasts, background scores, or multi-track audio layering using mcp-chirp3-go, mcp-lyria-go, mcp-gemini-go, mcp-nanobanana-go, and mcp-avtool-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2464,2467,2470,2471],{"name":2465,"slug":2466,"type":16},"Audio","audio",{"name":2468,"slug":2469,"type":16},"Creative","creative",{"name":9,"slug":8,"type":16},{"name":2472,"slug":2473,"type":16},"Vertex AI","vertex-ai","2026-07-12T07:39:16.623879",{"slug":2476,"name":2476,"fn":2477,"description":2478,"org":2479,"tags":2480,"stars":2438,"repoUrl":2439,"updatedAt":2487},"genmedia-image-artist","generate and edit AI images","Expert in AI image generation and editing. Use when the user needs high-quality textures, character-consistent visuals, or image-to-image editing using mcp-nanobanana-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2481,2482,2483,2486],{"name":2468,"slug":2469,"type":16},{"name":9,"slug":8,"type":16},{"name":2484,"slug":2485,"type":16},"Image Generation","image-generation",{"name":2472,"slug":2473,"type":16},"2026-07-12T07:39:15.372822",{"slug":2489,"name":2489,"fn":2490,"description":2491,"org":2492,"tags":2493,"stars":2438,"repoUrl":2439,"updatedAt":2503},"genmedia-producer","produce multi-step media content","Expert media production assistant. Use when requested to help with storyboarding, podcast creation, audio assembly, or complex multi-step media workflows using the GenMedia MCP servers (Veo, Lyria, Gemini TTS, NanoBanana).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2494,2495,2496,2497,2500],{"name":2465,"slug":2466,"type":16},{"name":2468,"slug":2469,"type":16},{"name":9,"slug":8,"type":16},{"name":2498,"slug":2499,"type":16},"Media","media",{"name":2501,"slug":2502,"type":16},"Video","video","2026-07-12T07:39:09.672849",{"slug":2505,"name":2505,"fn":2506,"description":2507,"org":2508,"tags":2509,"stars":2438,"repoUrl":2439,"updatedAt":2513},"genmedia-video-editor","edit and compose video content","Expert in video composition, editing, and format conversion. Use when the user wants to generate high-quality video, overlay images on video, concatenate clips, create GIFs, or sync audio to video using mcp-avtool-go and mcp-veo-go.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2510,2511,2512],{"name":2468,"slug":2469,"type":16},{"name":9,"slug":8,"type":16},{"name":2501,"slug":2502,"type":16},"2026-07-12T07:39:13.749081",{"slug":2515,"name":2515,"fn":2516,"description":2517,"org":2518,"tags":2519,"stars":2438,"repoUrl":2439,"updatedAt":2529},"genmedia-voice-director","generate expressive text-to-speech with Gemini","Expert in casting, directing, and generating expressive text-to-speech using Gemini TTS. Use this when the user needs virtual voice actor personas, expressive speech generation, or multiple variations of a voiceover (like \"take 3 on the bounce\").",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2520,2521,2522,2523,2526],{"name":2465,"slug":2466,"type":16},{"name":2468,"slug":2469,"type":16},{"name":2334,"slug":2335,"type":16},{"name":2524,"slug":2525,"type":16},"Speech","speech",{"name":2527,"slug":2528,"type":16},"Text-to-Speech","text-to-speech","2026-07-12T07:39:17.86673",80]