SYMBOL INDEX (128 symbols across 5 files) FILE: plugins/backend-development/skills/api-design-principles/assets/rest-api-template.py class UserStatus (line 38) | class UserStatus(str, Enum): class UserBase (line 43) | class UserBase(BaseModel): class UserCreate (line 48) | class UserCreate(UserBase): class UserUpdate (line 51) | class UserUpdate(BaseModel): class User (line 56) | class User(UserBase): class PaginationParams (line 64) | class PaginationParams(BaseModel): class PaginatedResponse (line 68) | class PaginatedResponse(BaseModel): class ErrorDetail (line 76) | class ErrorDetail(BaseModel): class ErrorResponse (line 81) | class ErrorResponse(BaseModel): function http_exception_handler (line 87) | async def http_exception_handler(request, exc): function list_users (line 99) | async def list_users( function create_user (line 129) | async def create_user(user: UserCreate): function get_user (line 142) | async def get_user(user_id: str = Path(..., description="User ID")): function update_user (line 161) | async def update_user(user_id: str, update: UserUpdate): function delete_user (line 175) | async def delete_user(user_id: str): FILE: plugins/dotnet-contribution/skills/dotnet-backend-patterns/assets/repository-template.cs type IProductRepository (line 14) | public interface IProductRepository method GetByIdAsync (line 16) | Task GetByIdAsync(string id, CancellationToken ct = default); method GetBySkuAsync (line 17) | Task GetBySkuAsync(string sku, CancellationToken ct = default); method SearchAsync (line 18) | Task<(IReadOnlyList Items, int TotalCount)> SearchAsync(Produ... method CreateAsync (line 19) | Task CreateAsync(Product product, CancellationToken ct = defa... method UpdateAsync (line 20) | Task UpdateAsync(Product product, CancellationToken ct = defa... method DeleteAsync (line 21) | Task DeleteAsync(string id, CancellationToken ct = default); method GetByIdsAsync (line 22) | Task> GetByIdsAsync(IEnumerable ids, Ca... class DapperProductRepository (line 29) | public class DapperProductRepository : IProductRepository method DapperProductRepository (line 34) | public DapperProductRepository( method GetByIdAsync (line 42) | public async Task GetByIdAsync(string id, CancellationToken ... method GetBySkuAsync (line 54) | public async Task GetBySkuAsync(string sku, CancellationToke... method SearchAsync (line 66) | public async Task<(IReadOnlyList Items, int TotalCount)> Sear... method CreateAsync (line 128) | public async Task CreateAsync(Product product, CancellationTo... method UpdateAsync (line 142) | public async Task UpdateAsync(Product product, CancellationTo... method DeleteAsync (line 162) | public async Task DeleteAsync(string id, CancellationToken ct = default) method GetByIdsAsync (line 174) | public async Task> GetByIdsAsync( class EfCoreProductRepository (line 199) | public class EfCoreProductRepository : IProductRepository method EfCoreProductRepository (line 204) | public EfCoreProductRepository( method GetByIdAsync (line 212) | public async Task GetByIdAsync(string id, CancellationToken ... method GetBySkuAsync (line 219) | public async Task GetBySkuAsync(string sku, CancellationToke... method SearchAsync (line 226) | public async Task<(IReadOnlyList Items, int TotalCount)> Sear... method CreateAsync (line 266) | public async Task CreateAsync(Product product, CancellationTo... method UpdateAsync (line 273) | public async Task UpdateAsync(Product product, CancellationTo... method DeleteAsync (line 280) | public async Task DeleteAsync(string id, CancellationToken ct = default) method GetByIdsAsync (line 291) | public async Task> GetByIdsAsync( class AppDbContext (line 310) | public class AppDbContext : DbContext method AppDbContext (line 312) | public AppDbContext(DbContextOptions options) : base(opt... method OnModelCreating (line 319) | protected override void OnModelCreating(ModelBuilder modelBuilder) class ProductConfiguration (line 329) | public class ProductConfiguration : IEntityTypeConfiguration method Configure (line 331) | public void Configure(EntityTypeBuilder builder) type IUnitOfWork (line 368) | public interface IUnitOfWork : IDisposable method SaveChangesAsync (line 372) | Task SaveChangesAsync(CancellationToken ct = default); method BeginTransactionAsync (line 373) | Task BeginTransactionAsync(CancellationToken ct = default); method CommitAsync (line 374) | Task CommitAsync(CancellationToken ct = default); method RollbackAsync (line 375) | Task RollbackAsync(CancellationToken ct = default); class UnitOfWork (line 378) | public class UnitOfWork : IUnitOfWork method UnitOfWork (line 386) | public UnitOfWork( method SaveChangesAsync (line 396) | public async Task SaveChangesAsync(CancellationToken ct = default) method BeginTransactionAsync (line 399) | public async Task BeginTransactionAsync(CancellationToken ct = default) method CommitAsync (line 404) | public async Task CommitAsync(CancellationToken ct = default) method RollbackAsync (line 414) | public async Task RollbackAsync(CancellationToken ct = default) method Dispose (line 424) | public void Dispose() type ISpecification (line 434) | public interface ISpecification class BaseSpecification (line 445) | public abstract class BaseSpecification : ISpecification method AddCriteria (line 455) | protected void AddCriteria(Expression> criteria) => Crit... method AddInclude (line 456) | protected void AddInclude(Expression> include) => Incl... method AddInclude (line 457) | protected void AddInclude(string include) => IncludeStrings.Add(include); method ApplyOrderBy (line 458) | protected void ApplyOrderBy(Expression> orderBy) => Or... method ApplyOrderByDescending (line 459) | protected void ApplyOrderByDescending(Expression> orde... method ApplyPaging (line 460) | protected void ApplyPaging(int skip, int take) { Skip = skip; Take = t... class ProductsByCategorySpec (line 464) | public class ProductsByCategorySpec : BaseSpecification method ProductsByCategorySpec (line 466) | public ProductsByCategorySpec(int categoryId, int page, int pageSize) class Product (line 479) | public class Product class Category (line 495) | public class Category class Order (line 502) | public class Order class OrderItem (line 511) | public class OrderItem FILE: plugins/dotnet-contribution/skills/dotnet-backend-patterns/assets/service-template.cs class ProductServiceOptions (line 14) | public class ProductServiceOptions class Result (line 27) | public class Result method Result (line 34) | private Result(bool isSuccess, T? value, string? error, string? errorC... method Success (line 42) | public static Result Success(T value) => new(true, value, null, null); method Failure (line 43) | public static Result Failure(string error, string? code = null) => ... method Map (line 45) | public Result Map(Func mapper) => type IProductService (line 52) | public interface IProductService method GetByIdAsync (line 54) | Task> GetByIdAsync(string id, CancellationToken ct = d... method SearchAsync (line 55) | Task>> SearchAsync(ProductSearchRequest re... method CreateAsync (line 56) | Task> CreateAsync(CreateProductRequest request, Cancel... method UpdateAsync (line 57) | Task> UpdateAsync(string id, UpdateProductRequest requ... method DeleteAsync (line 58) | Task> DeleteAsync(string id, CancellationToken ct = defau... class ProductService (line 64) | public class ProductService : IProductService method ProductService (line 73) | public ProductService( method GetByIdAsync (line 89) | public async Task> GetByIdAsync(string id, Cancellatio... method SearchAsync (line 127) | public async Task>> SearchAsync( method CreateAsync (line 164) | public async Task> CreateAsync(CreateProductRequest re... method UpdateAsync (line 206) | public async Task> UpdateAsync( method DeleteAsync (line 252) | public async Task> DeleteAsync(string id, CancellationTok... method GetCacheKey (line 280) | private static string GetCacheKey(string id) => $"product:{id}"; type CreateProductRequest (line 284) | public record CreateProductRequest(string Name, string Sku, decimal Pric... type UpdateProductRequest (line 285) | public record UpdateProductRequest(string? Name = null, decimal? Price =... type ProductSearchRequest (line 286) | public record ProductSearchRequest( class PagedResult (line 294) | public class PagedResult class Product (line 305) | public class Product class CreateProductRequestValidator (line 317) | public class CreateProductRequestValidator : AbstractValidator float: method optimize (line 104) | def optimize(self, base_prompt: str, max_iterations: int = 5) -> Dict[... method generate_variations (line 164) | def generate_variations(self, prompt: str, current_metrics: Dict) -> L... method make_concise (line 188) | def make_concise(self, prompt: str) -> str: method add_examples (line 203) | def add_examples(self, prompt: str) -> str: method compare_prompts (line 212) | def compare_prompts(self, prompt_a: str, prompt_b: str) -> Dict[str, A... method export_results (line 227) | def export_results(self, filename: str): function main (line 233) | def main(): FILE: tools/yt-design-extractor.py function extract_video_id (line 84) | def extract_video_id(url: str) -> str: function get_video_metadata (line 101) | def get_video_metadata(url: str) -> dict: function get_transcript (line 125) | def get_transcript(video_id: str) -> list[dict] | None: function download_video (line 163) | def download_video(url: str, out_dir: Path) -> Path: function extract_frames_interval (line 195) | def extract_frames_interval( function extract_frames_scene (line 233) | def extract_frames_scene( function ocr_frame_tesseract (line 275) | def ocr_frame_tesseract(frame_path: Path) -> str: function ocr_frame_easyocr (line 290) | def ocr_frame_easyocr(frame_path: Path, reader) -> str: function run_ocr_on_frames (line 300) | def run_ocr_on_frames( function extract_color_palette (line 362) | def extract_color_palette(frame_path: Path, color_count: int = 6) -> lis... function rgb_to_hex (line 375) | def rgb_to_hex(rgb: tuple) -> str: function analyze_color_palettes (line 380) | def analyze_color_palettes(frames: list[Path], sample_size: int = 10) ->... function fmt_timestamp (line 419) | def fmt_timestamp(seconds: float) -> str: function group_transcript (line 427) | def group_transcript(entries: list[dict], chunk_seconds: int = 60) -> li... function build_markdown (line 445) | def build_markdown( function main (line 616) | def main():