|
| 1 | +{ |
| 2 | + "package_name": "codeflash-docs", |
| 3 | + "total_capabilities": 16, |
| 4 | + "capabilities": [ |
| 5 | + { |
| 6 | + "id": 0, |
| 7 | + "name": "pipeline-stage-ordering", |
| 8 | + "description": "Know the correct ordering of codeflash pipeline stages: Discovery → Ranking → Context Extraction → Test Gen + Optimization (concurrent) → Baseline → Candidate Evaluation → PR", |
| 9 | + "complexity": "basic", |
| 10 | + "api_elements": ["Optimizer.run()", "FunctionOptimizer.optimize_function()"] |
| 11 | + }, |
| 12 | + { |
| 13 | + "id": 1, |
| 14 | + "name": "function-to-optimize-fields", |
| 15 | + "description": "Know FunctionToOptimize key fields (function_name, file_path, parents, starting_line/ending_line, is_async, is_method, language) and properties (qualified_name, top_level_parent_name, class_name)", |
| 16 | + "complexity": "intermediate", |
| 17 | + "api_elements": ["FunctionToOptimize", "FunctionParent", "models/function_types.py"] |
| 18 | + }, |
| 19 | + { |
| 20 | + "id": 2, |
| 21 | + "name": "code-strings-markdown-format", |
| 22 | + "description": "Know that code is serialized as markdown fenced blocks with language:filepath syntax (```python:filepath\\ncode\\n```) and parsed via CodeStringsMarkdown.parse_markdown_code()", |
| 23 | + "complexity": "intermediate", |
| 24 | + "api_elements": ["CodeStringsMarkdown", "CodeString", ".markdown", ".flat", "parse_markdown_code()"] |
| 25 | + }, |
| 26 | + { |
| 27 | + "id": 3, |
| 28 | + "name": "read-writable-vs-read-only", |
| 29 | + "description": "Distinguish read_writable_code (LLM can modify) from read_only_context_code (reference only) in CodeOptimizationContext", |
| 30 | + "complexity": "basic", |
| 31 | + "api_elements": ["CodeOptimizationContext", "read_writable_code", "read_only_context_code"] |
| 32 | + }, |
| 33 | + { |
| 34 | + "id": 4, |
| 35 | + "name": "candidate-source-types", |
| 36 | + "description": "Know OptimizedCandidateSource variants: OPTIMIZE, OPTIMIZE_LP, REFINE, REPAIR, ADAPTIVE, JIT_REWRITE and when each is used", |
| 37 | + "complexity": "intermediate", |
| 38 | + "api_elements": ["OptimizedCandidateSource", "OptimizedCandidate"] |
| 39 | + }, |
| 40 | + { |
| 41 | + "id": 5, |
| 42 | + "name": "candidate-forest-dag", |
| 43 | + "description": "Know that candidates form a forest/DAG via parent_id references where refinements and repairs build on previous candidates", |
| 44 | + "complexity": "intermediate", |
| 45 | + "api_elements": ["parent_id", "OptimizedCandidate", "CandidateForest"] |
| 46 | + }, |
| 47 | + { |
| 48 | + "id": 6, |
| 49 | + "name": "concurrent-testgen-optimization", |
| 50 | + "description": "Know that test generation and LLM optimization run concurrently using concurrent.futures, not sequentially", |
| 51 | + "complexity": "intermediate", |
| 52 | + "api_elements": ["concurrent.futures", "FunctionOptimizer.optimize_function()"] |
| 53 | + }, |
| 54 | + { |
| 55 | + "id": 7, |
| 56 | + "name": "deterministic-patch-values", |
| 57 | + "description": "Know the specific fixed values used by deterministic patches: time=1761717605.108106, datetime=2021-01-01 02:05:10 UTC, uuid=12345678-1234-5678-9abc-123456789012, random seeded with 42", |
| 58 | + "complexity": "advanced", |
| 59 | + "api_elements": ["_apply_deterministic_patches()", "pytest_plugin.py"] |
| 60 | + }, |
| 61 | + { |
| 62 | + "id": 8, |
| 63 | + "name": "test-type-enum", |
| 64 | + "description": "Know the 6 TestType variants: EXISTING_UNIT_TEST, INSPIRED_REGRESSION, GENERATED_REGRESSION, REPLAY_TEST, CONCOLIC_COVERAGE_TEST, INIT_STATE_TEST", |
| 65 | + "complexity": "basic", |
| 66 | + "api_elements": ["TestType", "models/test_type.py"] |
| 67 | + }, |
| 68 | + { |
| 69 | + "id": 9, |
| 70 | + "name": "ai-service-endpoints", |
| 71 | + "description": "Know the AI service endpoints: /ai/optimize, /ai/optimize_line_profiler, /ai/refine, /ai/repair, /ai/adaptive_optimize, /ai/rewrite_jit", |
| 72 | + "complexity": "intermediate", |
| 73 | + "api_elements": ["AiServiceClient", "api/aiservice.py"] |
| 74 | + }, |
| 75 | + { |
| 76 | + "id": 10, |
| 77 | + "name": "repair-request-structure", |
| 78 | + "description": "Know that AIServiceCodeRepairRequest includes TestDiff objects with scope (RETURN_VALUE/STDOUT/DID_PASS), original vs candidate values, and test source code", |
| 79 | + "complexity": "advanced", |
| 80 | + "api_elements": ["AIServiceCodeRepairRequest", "TestDiff", "TestDiffScope"] |
| 81 | + }, |
| 82 | + { |
| 83 | + "id": 11, |
| 84 | + "name": "effort-level-values", |
| 85 | + "description": "Know specific effort level values: LOW gets 3 candidates, MEDIUM gets 5, HIGH gets 6 (N_OPTIMIZER_CANDIDATES)", |
| 86 | + "complexity": "intermediate", |
| 87 | + "api_elements": ["EffortLevel", "N_OPTIMIZER_CANDIDATES", "EFFORT_VALUES"] |
| 88 | + }, |
| 89 | + { |
| 90 | + "id": 12, |
| 91 | + "name": "context-token-limits", |
| 92 | + "description": "Know OPTIMIZATION_CONTEXT_TOKEN_LIMIT=16000 and TESTGEN_CONTEXT_TOKEN_LIMIT=16000 and that encoded_tokens_len() is used for counting", |
| 93 | + "complexity": "basic", |
| 94 | + "api_elements": ["OPTIMIZATION_CONTEXT_TOKEN_LIMIT", "TESTGEN_CONTEXT_TOKEN_LIMIT", "encoded_tokens_len()"] |
| 95 | + }, |
| 96 | + { |
| 97 | + "id": 13, |
| 98 | + "name": "best-candidate-selection", |
| 99 | + "description": "Know the selection criteria: highest speedup, then shortest diff for ties, and refinement weighted ranking (2*runtime + 1*diff)", |
| 100 | + "complexity": "advanced", |
| 101 | + "api_elements": ["BestOptimization", "REFINED_CANDIDATE_RANKING_WEIGHTS"] |
| 102 | + }, |
| 103 | + { |
| 104 | + "id": 14, |
| 105 | + "name": "plugin-blocklists", |
| 106 | + "description": "Know behavioral test blocklisted plugins (benchmark, codspeed, xdist, sugar) and benchmarking blocklist (adds cov, profiling)", |
| 107 | + "complexity": "intermediate", |
| 108 | + "api_elements": ["BEHAVIORAL_BLOCKLISTED_PLUGINS", "BENCHMARKING_BLOCKLISTED_PLUGINS"] |
| 109 | + }, |
| 110 | + { |
| 111 | + "id": 15, |
| 112 | + "name": "result-type-usage", |
| 113 | + "description": "Know that Result[L,R] from either.py uses Success(value)/Failure(error) with is_successful() check before unwrap()", |
| 114 | + "complexity": "basic", |
| 115 | + "api_elements": ["Result", "Success", "Failure", "is_successful", "either.py"] |
| 116 | + } |
| 117 | + ] |
| 118 | +} |
0 commit comments