Loading...
Loading...
Compare original and translation side by side
Paths: File paths (,shared/,references/) are relative to skills repo root. If not found at CWD, locate this SKILL.md directory and go up one level for repo root.../ln-*
路径: 文件路径(、shared/、references/)是相对于技能仓库根目录的。如果在当前工作目录未找到,请定位到本SKILL.md所在目录,然后向上一级即为仓库根目录。../ln-*
shared/references/audit_worker_core_contract.mdcontextStoretech_stackbest_practicesdb_configcodebase_rootoutput_dirdomain_modecurrent_domainshared/references/audit_worker_core_contract.mdcontextStoretech_stackbest_practicesdb_configcodebase_rootoutput_dirdomain_modecurrent_domainshared/references/two_layer_detection.mdDepends()@Autowired@PersistenceContextsessionmakercreate_engineDataSourceDepends()@Injectshared/templates/audit_worker_report_template.md{output_dir}/654-resource-lifecycle.mdshared/references/two_layer_detection.mdDepends()@Autowired@PersistenceContextsessionmakercreate_engineDataSourceDepends()@Injectshared/templates/audit_worker_report_template.md{output_dir}/654-resource-lifecycle.mdasync def\s+\w+\(.*Depends\(get_db\)|Depends\(get_session\)|db:\s*AsyncSession|session:\s*AsyncSessionsession\.|db\.|await.*repousage_lines / total_lines < 0.2req.dbreq.knexapp\.use.*pool|app\.use.*knex|app\.use.*prismareq.db@TransactionalEntityManager@Autowired.*EntityManager|@PersistenceContextsql.DB*gorm.DBfunc.*Handler.*\*sql\.DB|func.*Handler.*\*gorm\.DBasync with get_session() as session:async def\s+\w+\(.*Depends\(get_db\)|Depends\(get_session\)|db:\s*AsyncSession|session:\s*AsyncSessionsession\.|db\.|await.*repo使用行数 / 总行数 < 0.2req.dbreq.knexapp\.use.*pool|app\.use.*knex|app\.use.*prismareq.db@TransactionalEntityManager@Autowired.*EntityManager|@PersistenceContextsql.DB*gorm.DBfunc.*Handler.*\*sql\.DB|func.*Handler.*\*gorm\.DBasync with get_session() as session:StreamingResponse|EventSourceResponse|SSE|async def.*websocket|@app\.websocketyield\s+.*event|yield\s+.*data:|async for.*yieldDepends()res\.write\(|res\.flush\(|Server-Sent Events|new WebSocket|ws\.on\(SseEmitter|WebSocketHandler|StreamingResponseBody@TransactionalFlusher|http\.Flusher|websocket\.Conn*sql.DBStreamingResponse|EventSourceResponse|SSE|async def.*websocket|@app\.websocketyield\s+.*event|yield\s+.*data:|async for.*yieldDepends()res\.write\(|res\.flush\(|Server-Sent Events|new WebSocket|ws\.on\(SseEmitter|WebSocketHandler|StreamingResponseBody@TransactionalFlusher|http\.Flusher|websocket\.Conn*sql.DBsession\s*=\s*Session\(\)|session\s*=\s*sessionmaker|engine\.connect\(\)withasync withconnection\s*=\s*pool\.acquire\(\)|conn\s*=\s*await.*connect\(\)try:.*finally:.*close\(\)session = get_session()async with session_factory() as session:with engine.connect() as conn:pool\.connect\(\)|knex\.client\.acquireConnection|\.getConnection\(\).release().end()createConnection\(\).destroy()getConnection\(\)|dataSource\.getConnection\(\)Connection conn = ds.getConnection()try (Connection conn = ...)sql\.Open\(|db\.Begin\(\)defer.*Close\(\)|defer.*Rollback\(\)tx, err := db.Begin()defer tx.Rollback()pool_sizesession\s*=\s*Session\(\)|session\s*=\s*sessionmaker|engine\.connect\(\)withasync withconnection\s*=\s*pool\.acquire\(\)|conn\s*=\s*await.*connect\(\)try:.*finally:.*close\(\)session = get_session()async with session_factory() as session:with engine.connect() as conn:pool\.connect\(\)|knex\.client\.acquireConnection|\.getConnection\(\).release().end()createConnection\(\).destroy()getConnection\(\)|dataSource\.getConnection\(\)Connection conn = ds.getConnection()try (Connection conn = ...)sql\.Open\(|db\.Begin\(\)defer.*Close\(\)|defer.*Rollback\(\)tx, err := db.Begin()defer tx.Rollback()pool_sizecreate_engine\(|create_async_engine\(pool_pre_ping=Truepool_recyclepool_sizemax_overflowpool_size=0NullPool@event.listens_for(engine, "invalidate")@event.listens_for(engine, "checkout")@event.listens_for(engine, "checkin")createPool\(|new Pool\(minmaxidleTimeoutMillisreapIntervalMillisvalidateConnectiontestOnBorrowDataSource|HikariConfig|HikariDataSourceleakDetectionThresholdmaximumPoolSizeconnectionTestQueryconnectionInitSqlsql\.Open\(db.SetMaxOpenConns()db.SetMaxIdleConns()db.SetConnMaxLifetime()create_engine\(|create_async_engine\(pool_pre_ping=Truepool_recyclepool_sizemax_overflowpool_size=0NullPool@event.listens_for(engine, "invalidate")@event.listens_for(engine, "checkout")@event.listens_for(engine, "checkin")createPool\(|new Pool\(minmaxidleTimeoutMillisreapIntervalMillisvalidateConnectiontestOnBorrowDataSource|HikariConfig|HikariDataSourceleakDetectionThresholdmaximumPoolSizeconnectionTestQueryconnectionInitSqlsql\.Open\(db.SetMaxOpenConns()db.SetMaxIdleConns()db.SetConnMaxLifetime()exceptraisereturnsession.close()conn.close()cursor.close()except Exception: logger.error(...); raiseasync def.*yield.*session|def.*yield.*sessiontry:.*finally:.*close\(\)catch\s*\(throwreturnpool.connect().then(client => { ... }).finally(() => client.release()).finally()catch\s*\(finally { conn.close() }tryif err != nil \{.*returndeferOpen()defer Close()raisereturnsession.close()conn.close()cursor.close()exceptexcept Exception: logger.error(...); raiseasync def.*yield.*session|def.*yield.*sessiontry:.*finally:.*close\(\)catch\s*\(throwreturnpool.connect().then(client => { ... }).finally(() => client.release()).finally()catch\s*\(tryfinally { conn.close() }if err != nil \{.*returndeferOpen()defer Close()Depends\(get_db\)|Depends\(get_session\)|Depends\(get_async_session\)StreamingResponseEventSourceResponse@app.websocketBackgroundTasks.add_taskasync with session_factory() as session:session: AsyncSession = Depends(get_session)req.dbconst conn = await pool.connect(); try { ... } finally { conn.release() }@Autowired EntityManager@ControllerSseEmitter*sql.DB*sql.ConnDepends\(get_db\)|Depends\(get_session\)|Depends\(get_async_session\)StreamingResponseEventSourceResponse@app.websocketBackgroundTasks.add_taskasync with session_factory() as session:session: AsyncSession = Depends(get_session)req.dbconst conn = await pool.connect(); try { ... } finally { conn.release() }SseEmitter@Controller@Autowired EntityManager*sql.DB*sql.Connshared/references/audit_worker_core_contract.mdshared/references/audit_scoring.mdshared/references/audit_worker_core_contract.mdshared/references/audit_scoring.mdshared/references/audit_worker_core_contract.mdshared/templates/audit_worker_report_template.md{output_dir}/654-resource-lifecycle.mdcategory: "Resource Lifecycle"Report written: docs/project/.audit/ln-650/{YYYY-MM-DD}/654-resource-lifecycle.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)shared/references/audit_worker_core_contract.mdshared/templates/audit_worker_report_template.md{output_dir}/654-resource-lifecycle.mdcategory: "Resource Lifecycle"Report written: docs/project/.audit/ln-650/{YYYY-MM-DD}/654-resource-lifecycle.md
Score: X.X/10 | Issues: N (C:N H:N M:N L:N)shared/references/audit_worker_core_contract.mdasync withwithdefershared/references/audit_worker_core_contract.mdasync withwithdefershared/references/audit_worker_core_contract.md{output_dir}/654-resource-lifecycle.md{output_dir}/654-resource-lifecycle.mdshared/references/audit_output_schema.mdshared/references/audit_output_schema.md