wegho-agentes 7.0.3 → 7.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.agent/.shared/ui-ux-pro-max/data/charts.csv +26 -0
- package/.agent/.shared/ui-ux-pro-max/data/colors.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/icons.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/landing.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/data/products.csv +97 -0
- package/.agent/.shared/ui-ux-pro-max/data/prompts.csv +24 -0
- package/.agent/.shared/ui-ux-pro-max/data/react-performance.csv +45 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/flutter.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/html-tailwind.csv +56 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/jetpack-compose.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nextjs.csv +53 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxt-ui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/nuxtjs.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react-native.csv +52 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/react.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/shadcn.csv +61 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/svelte.csv +54 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/swiftui.csv +51 -0
- package/.agent/.shared/ui-ux-pro-max/data/stacks/vue.csv +50 -0
- package/.agent/.shared/ui-ux-pro-max/data/styles.csv +59 -0
- package/.agent/.shared/ui-ux-pro-max/data/typography.csv +58 -0
- package/.agent/.shared/ui-ux-pro-max/data/ui-reasoning.csv +101 -0
- package/.agent/.shared/ui-ux-pro-max/data/ux-guidelines.csv +100 -0
- package/.agent/.shared/ui-ux-pro-max/data/web-interface.csv +31 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/core.py +258 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/design_system.py +1067 -0
- package/.agent/.shared/ui-ux-pro-max/scripts/search.py +106 -0
- package/.agent/ARCHITECTURE.md +288 -0
- package/.agent/agents/backend-specialist.md +263 -0
- package/.agent/agents/code-archaeologist.md +106 -0
- package/.agent/agents/database-architect.md +226 -0
- package/.agent/agents/debugger.md +225 -0
- package/.agent/agents/devops-engineer.md +242 -0
- package/.agent/agents/documentation-writer.md +104 -0
- package/.agent/agents/explorer-agent.md +73 -0
- package/.agent/agents/frontend-specialist.md +593 -0
- package/.agent/agents/game-developer.md +162 -0
- package/.agent/agents/mobile-developer.md +377 -0
- package/.agent/agents/orchestrator.md +416 -0
- package/.agent/agents/penetration-tester.md +188 -0
- package/.agent/agents/performance-optimizer.md +187 -0
- package/.agent/agents/product-manager.md +112 -0
- package/.agent/agents/product-owner.md +95 -0
- package/.agent/agents/project-planner.md +406 -0
- package/.agent/agents/qa-automation-engineer.md +103 -0
- package/.agent/agents/security-auditor.md +170 -0
- package/.agent/agents/seo-specialist.md +111 -0
- package/.agent/agents/test-engineer.md +158 -0
- package/.agent/mcp_config.json +24 -0
- package/.agent/mcp_config.md +30 -0
- package/.agent/rules/GEMINI.md +308 -0
- package/.agent/scripts/auto_preview.py +148 -0
- package/.agent/scripts/checklist.py +217 -0
- package/.agent/scripts/session_manager.py +120 -0
- package/.agent/scripts/verify_all.py +327 -0
- package/.agent/skills/api-patterns/SKILL.md +81 -0
- package/.agent/skills/api-patterns/api-style.md +42 -0
- package/.agent/skills/api-patterns/auth.md +24 -0
- package/.agent/skills/api-patterns/documentation.md +26 -0
- package/.agent/skills/api-patterns/graphql.md +41 -0
- package/.agent/skills/api-patterns/rate-limiting.md +31 -0
- package/.agent/skills/api-patterns/response.md +37 -0
- package/.agent/skills/api-patterns/rest.md +40 -0
- package/.agent/skills/api-patterns/scripts/api_validator.py +211 -0
- package/.agent/skills/api-patterns/security-testing.md +122 -0
- package/.agent/skills/api-patterns/trpc.md +41 -0
- package/.agent/skills/api-patterns/versioning.md +22 -0
- package/.agent/skills/app-builder/SKILL.md +75 -0
- package/.agent/skills/app-builder/agent-coordination.md +71 -0
- package/.agent/skills/app-builder/feature-building.md +53 -0
- package/.agent/skills/app-builder/project-detection.md +34 -0
- package/.agent/skills/app-builder/scaffolding.md +118 -0
- package/.agent/skills/app-builder/tech-stack.md +41 -0
- package/.agent/skills/app-builder/templates/SKILL.md +39 -0
- package/.agent/skills/app-builder/templates/astro-static/TEMPLATE.md +76 -0
- package/.agent/skills/app-builder/templates/chrome-extension/TEMPLATE.md +92 -0
- package/.agent/skills/app-builder/templates/cli-tool/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/electron-desktop/TEMPLATE.md +88 -0
- package/.agent/skills/app-builder/templates/express-api/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/flutter-app/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/monorepo-turborepo/TEMPLATE.md +90 -0
- package/.agent/skills/app-builder/templates/nextjs-fullstack/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-saas/TEMPLATE.md +122 -0
- package/.agent/skills/app-builder/templates/nextjs-static/TEMPLATE.md +169 -0
- package/.agent/skills/app-builder/templates/nuxt-app/TEMPLATE.md +134 -0
- package/.agent/skills/app-builder/templates/python-fastapi/TEMPLATE.md +83 -0
- package/.agent/skills/app-builder/templates/react-native-app/TEMPLATE.md +119 -0
- package/.agent/skills/architecture/SKILL.md +55 -0
- package/.agent/skills/architecture/context-discovery.md +43 -0
- package/.agent/skills/architecture/examples.md +94 -0
- package/.agent/skills/architecture/pattern-selection.md +68 -0
- package/.agent/skills/architecture/patterns-reference.md +50 -0
- package/.agent/skills/architecture/trade-off-analysis.md +77 -0
- package/.agent/skills/bash-linux/SKILL.md +199 -0
- package/.agent/skills/behavioral-modes/SKILL.md +242 -0
- package/.agent/skills/brainstorming/SKILL.md +163 -0
- package/.agent/skills/brainstorming/dynamic-questioning.md +350 -0
- package/.agent/skills/clean-code/SKILL.md +201 -0
- package/.agent/skills/code-review-checklist/SKILL.md +109 -0
- package/.agent/skills/database-design/SKILL.md +103 -0
- package/.agent/skills/database-design/database-selection.md +43 -0
- package/.agent/skills/database-design/github-benchmarks.md +35 -0
- package/.agent/skills/database-design/indexing.md +39 -0
- package/.agent/skills/database-design/migrations.md +48 -0
- package/.agent/skills/database-design/optimization.md +36 -0
- package/.agent/skills/database-design/orm-selection.md +30 -0
- package/.agent/skills/database-design/schema-design.md +56 -0
- package/.agent/skills/database-design/scripts/schema_validator.py +172 -0
- package/.agent/skills/database-design/supabase-security-egress.md +42 -0
- package/.agent/skills/deployment-procedures/SKILL.md +241 -0
- package/.agent/skills/doc.md +177 -0
- package/.agent/skills/documentation-templates/SKILL.md +194 -0
- package/.agent/skills/file-doc-sync/SKILL.md +44 -0
- package/.agent/skills/file-doc-sync/references/document-structure.md +20 -0
- package/.agent/skills/file-doc-sync/scripts/sync-file-docs.md +45 -0
- package/.agent/skills/file-doc-sync/scripts/sync-file-docs.ts +349 -0
- package/.agent/skills/frontend-design/SKILL.md +452 -0
- package/.agent/skills/frontend-design/animation-guide.md +331 -0
- package/.agent/skills/frontend-design/color-system.md +311 -0
- package/.agent/skills/frontend-design/decision-trees.md +418 -0
- package/.agent/skills/frontend-design/motion-graphics.md +306 -0
- package/.agent/skills/frontend-design/scripts/accessibility_checker.py +183 -0
- package/.agent/skills/frontend-design/scripts/ux_audit.py +722 -0
- package/.agent/skills/frontend-design/typography-system.md +345 -0
- package/.agent/skills/frontend-design/ux-psychology.md +1116 -0
- package/.agent/skills/frontend-design/visual-effects.md +383 -0
- package/.agent/skills/game-development/2d-games/SKILL.md +119 -0
- package/.agent/skills/game-development/3d-games/SKILL.md +135 -0
- package/.agent/skills/game-development/SKILL.md +167 -0
- package/.agent/skills/game-development/game-art/SKILL.md +185 -0
- package/.agent/skills/game-development/game-audio/SKILL.md +190 -0
- package/.agent/skills/game-development/game-design/SKILL.md +129 -0
- package/.agent/skills/game-development/mobile-games/SKILL.md +108 -0
- package/.agent/skills/game-development/multiplayer/SKILL.md +132 -0
- package/.agent/skills/game-development/pc-games/SKILL.md +144 -0
- package/.agent/skills/game-development/vr-ar/SKILL.md +123 -0
- package/.agent/skills/game-development/web-games/SKILL.md +150 -0
- package/.agent/skills/geo-fundamentals/SKILL.md +156 -0
- package/.agent/skills/geo-fundamentals/scripts/geo_checker.py +289 -0
- package/.agent/skills/i18n-localization/SKILL.md +154 -0
- package/.agent/skills/i18n-localization/scripts/i18n_checker.py +241 -0
- package/.agent/skills/intelligent-routing/SKILL.md +335 -0
- package/.agent/skills/lint-and-validate/SKILL.md +45 -0
- package/.agent/skills/lint-and-validate/scripts/lint_runner.py +184 -0
- package/.agent/skills/lint-and-validate/scripts/type_coverage.py +173 -0
- package/.agent/skills/mcp-builder/SKILL.md +176 -0
- package/.agent/skills/mobile-design/SKILL.md +394 -0
- package/.agent/skills/mobile-design/decision-trees.md +516 -0
- package/.agent/skills/mobile-design/mobile-backend.md +491 -0
- package/.agent/skills/mobile-design/mobile-color-system.md +420 -0
- package/.agent/skills/mobile-design/mobile-debugging.md +122 -0
- package/.agent/skills/mobile-design/mobile-design-thinking.md +357 -0
- package/.agent/skills/mobile-design/mobile-navigation.md +458 -0
- package/.agent/skills/mobile-design/mobile-performance.md +767 -0
- package/.agent/skills/mobile-design/mobile-testing.md +356 -0
- package/.agent/skills/mobile-design/mobile-typography.md +433 -0
- package/.agent/skills/mobile-design/platform-android.md +666 -0
- package/.agent/skills/mobile-design/platform-ios.md +561 -0
- package/.agent/skills/mobile-design/scripts/mobile_audit.py +670 -0
- package/.agent/skills/mobile-design/touch-psychology.md +537 -0
- package/.agent/skills/nextjs-react-expert/1-async-eliminating-waterfalls.md +351 -0
- package/.agent/skills/nextjs-react-expert/2-bundle-bundle-size-optimization.md +240 -0
- package/.agent/skills/nextjs-react-expert/3-server-server-side-performance.md +490 -0
- package/.agent/skills/nextjs-react-expert/4-client-client-side-data-fetching.md +264 -0
- package/.agent/skills/nextjs-react-expert/5-rerender-re-render-optimization.md +581 -0
- package/.agent/skills/nextjs-react-expert/6-rendering-rendering-performance.md +432 -0
- package/.agent/skills/nextjs-react-expert/7-js-javascript-performance.md +684 -0
- package/.agent/skills/nextjs-react-expert/8-advanced-advanced-patterns.md +150 -0
- package/.agent/skills/nextjs-react-expert/9-cache-components.md +103 -0
- package/.agent/skills/nextjs-react-expert/SKILL.md +293 -0
- package/.agent/skills/nextjs-react-expert/scripts/convert_rules.py +222 -0
- package/.agent/skills/nextjs-react-expert/scripts/react_performance_checker.py +252 -0
- package/.agent/skills/nodejs-best-practices/SKILL.md +333 -0
- package/.agent/skills/parallel-agents/SKILL.md +175 -0
- package/.agent/skills/performance-profiling/SKILL.md +143 -0
- package/.agent/skills/performance-profiling/scripts/lighthouse_audit.py +76 -0
- package/.agent/skills/plan-writing/SKILL.md +152 -0
- package/.agent/skills/powershell-windows/SKILL.md +167 -0
- package/.agent/skills/python-patterns/SKILL.md +441 -0
- package/.agent/skills/red-team-tactics/SKILL.md +199 -0
- package/.agent/skills/rust-pro/SKILL.md +176 -0
- package/.agent/skills/seo-fundamentals/SKILL.md +129 -0
- package/.agent/skills/seo-fundamentals/scripts/seo_checker.py +219 -0
- package/.agent/skills/server-management/SKILL.md +161 -0
- package/.agent/skills/systematic-debugging/SKILL.md +109 -0
- package/.agent/skills/tailwind-patterns/SKILL.md +269 -0
- package/.agent/skills/tdd-workflow/SKILL.md +149 -0
- package/.agent/skills/testing-patterns/SKILL.md +178 -0
- package/.agent/skills/testing-patterns/scripts/test_runner.py +219 -0
- package/.agent/skills/vulnerability-scanner/SKILL.md +322 -0
- package/.agent/skills/vulnerability-scanner/checklists.md +121 -0
- package/.agent/skills/vulnerability-scanner/github-benchmarks.md +32 -0
- package/.agent/skills/vulnerability-scanner/scripts/security_scan.py +458 -0
- package/.agent/skills/web-design-guidelines/SKILL.md +57 -0
- package/.agent/skills/webapp-testing/SKILL.md +187 -0
- package/.agent/skills/webapp-testing/scripts/playwright_runner.py +173 -0
- package/.agent/skills/wegho-global-rules/SKILL.md +36 -6
- package/.agent/workflows/PROMPT_GUIDE.md +16 -203
- package/.agent/workflows/auto-run-orchestrator.md +3 -3
- package/.agent/workflows/brainstorm.md +113 -0
- package/.agent/workflows/create.md +59 -0
- package/.agent/workflows/debug.md +103 -0
- package/.agent/workflows/deploy.md +176 -0
- package/.agent/workflows/enhance.md +63 -0
- package/.agent/workflows/orchestrate.md +237 -0
- package/.agent/workflows/plan.md +89 -0
- package/.agent/workflows/preview.md +81 -0
- package/.agent/workflows/run-agents-workflow.md +15 -186
- package/.agent/workflows/status.md +86 -0
- package/.agent/workflows/test.md +144 -0
- package/.agent/workflows/ui-ux-pro-max.md +296 -0
- package/.agents/AGENT_WORKFLOW.md +36 -528
- package/.agents/CLI.md +42 -222
- package/.agents/README.md +18 -130
- package/.agents/antigravity-preflight.md +36 -0
- package/.agents/antigravity-preflight.ts +21 -80
- package/.agents/auto-runner.md +36 -0
- package/.agents/auto-runner.ts +2 -2
- package/.agents/cli.ts +2 -2
- package/.agents/code-auditor-agent.md +38 -0
- package/.agents/config.md +34 -0
- package/.agents/config.ts +15 -29
- package/.agents/context-loader.md +37 -0
- package/.agents/core/agent-parallelizer.md +33 -0
- package/.agents/core/ai-agents-agent.md +35 -0
- package/.agents/core/architecture-agent.md +39 -0
- package/.agents/core/architecture-agent.ts +1 -1
- package/.agents/core/automation-agent.md +33 -0
- package/.agents/core/backend-agent.md +35 -0
- package/.agents/core/base-agent.md +36 -0
- package/.agents/core/base-agent.ts +132 -337
- package/.agents/core/build-manager.md +35 -0
- package/.agents/core/cache-manager.md +32 -0
- package/.agents/core/checkpoint-manager.md +36 -0
- package/.agents/core/cloud-agent.md +33 -0
- package/.agents/core/cro-agent.md +33 -0
- package/.agents/core/database-agent.md +35 -0
- package/.agents/core/devops-agent.md +33 -0
- package/.agents/core/documentation-agent.md +36 -0
- package/.agents/core/documentation-agent.ts +1 -1
- package/.agents/core/file-generator.md +42 -0
- package/.agents/core/frontend-agent.md +36 -0
- package/.agents/core/frontend-agent.ts +1 -1
- package/.agents/core/nextjs-agent.md +35 -0
- package/.agents/core/pentest-agent.md +35 -0
- package/.agents/core/performance-tracker.md +33 -0
- package/.agents/core/planning-agent.md +33 -0
- package/.agents/core/planning-agent.ts +77 -388
- package/.agents/core/quality-agent.md +36 -0
- package/.agents/core/quality-agent.ts +1 -1
- package/.agents/core/rag-agent.md +36 -0
- package/.agents/core/report-generator.md +35 -0
- package/.agents/core/retry-utility.md +34 -0
- package/.agents/core/security-agent.md +39 -0
- package/.agents/core/security-agent.ts +1 -1
- package/.agents/core/skill-manager.md +36 -0
- package/.agents/core/stack-boundary-agent.md +38 -0
- package/.agents/core/testing-agent.md +33 -0
- package/.agents/core/ui-data-map-agent.md +38 -0
- package/.agents/core/uiux-agent.md +35 -0
- package/.agents/core/workflow-validator.md +33 -0
- package/.agents/core/workflow-validator.ts +98 -158
- package/.agents/domains/README.md +10 -53
- package/.agents/domains/logistics/route-agent.md +34 -0
- package/.agents/domains/logistics/route-agent.ts +1 -1
- package/.agents/domains/news/cms-agent.md +35 -0
- package/.agents/domains/news/cms-agent.ts +1 -1
- package/.agents/domains/news/seo-agent.md +34 -0
- package/.agents/domains/news/seo-agent.ts +1 -1
- package/.agents/domains/production/production-control-agent.md +34 -0
- package/.agents/domains/production/production-control-agent.ts +1 -1
- package/.agents/init.md +40 -0
- package/.agents/init.ts +81 -168
- package/.agents/install.md +34 -0
- package/.agents/install.ts +115 -138
- package/.agents/orchestrator.md +43 -0
- package/.agents/orchestrator.ts +322 -764
- package/.agents/project-discovery-agent.md +40 -0
- package/.agents/reference-repositories.json +5 -0
- package/.agents/reference-repositories.md +30 -0
- package/.agents/security/vulnerability-db.md +42 -0
- package/.agents/sync-docs.md +32 -0
- package/.agents/sync-docs.ts +15 -0
- package/.agents/task-analyzer-agent.md +36 -0
- package/.agents/task-analyzer-agent.ts +122 -478
- package/.agents/validate.md +36 -0
- package/.agents/validate.ts +1 -1
- package/INSTALL.md +18 -300
- package/README.md +20 -332
- package/package.json +19 -3
- package/skills/algorithmic-art/templates/generator_template.md +31 -0
- package/skills/algorithmic-art/templates/viewer.md +31 -0
- package/skills/app-store-optimization/expected_output.md +30 -0
- package/skills/app-store-optimization/sample_input.md +30 -0
- package/skills/cc-skill-continuous-learning/config.md +30 -0
- package/skills/claude-d3js-skill/assets/chart-template.md +32 -0
- package/skills/claude-d3js-skill/assets/interactive-template.md +32 -0
- package/skills/claude-d3js-skill/assets/sample-data.md +30 -0
- package/skills/loki-mode/scripts/take-screenshots.md +33 -0
- package/skills/playwright-skill/lib/helpers.md +34 -0
- package/skills/playwright-skill/package.md +30 -0
- package/skills/playwright-skill/run.md +36 -0
- package/skills/postgres-best-practices/metadata.md +31 -0
- package/skills/pptx-official/scripts/html2pptx.md +38 -0
- package/skills/react-best-practices/metadata.md +30 -0
- package/skills/remotion-best-practices/rules/assets/charts-bar-chart.md +33 -0
- package/skills/remotion-best-practices/rules/assets/text-animations-typewriter.md +32 -0
- package/skills/remotion-best-practices/rules/assets/text-animations-word-highlight.md +34 -0
- package/skills/systematic-debugging/condition-based-waiting-example.md +34 -0
- package/skills/typescript-expert/references/tsconfig-strict.md +30 -0
- package/skills/typescript-expert/references/utility-types.md +32 -0
- package/skills/writing-skills/render-graphs.md +32 -0
- package/.agents/AI_COMPATIBILITY.md +0 -333
- package/.agents/core/feedback-collector.ts +0 -207
- package/.agents/core/inventory-agent.ts +0 -757
- package/.agents/core/memory-system.ts +0 -429
- package/.agents/memory/ai-agents-agent/failures.json +0 -1
- package/.agents/memory/ai-agents-agent/learnings.json +0 -1
- package/.agents/memory/ai-agents-agent/specialty.md +0 -3
- package/.agents/memory/ai-agents-agent/successes.json +0 -1
- package/.agents/memory/architecture-agent/failures.json +0 -1
- package/.agents/memory/architecture-agent/learnings.json +0 -1
- package/.agents/memory/architecture-agent/specialty.md +0 -31
- package/.agents/memory/architecture-agent/successes.json +0 -1
- package/.agents/memory/automation-agent/failures.json +0 -1
- package/.agents/memory/automation-agent/learnings.json +0 -1
- package/.agents/memory/automation-agent/specialty.md +0 -3
- package/.agents/memory/automation-agent/successes.json +0 -1
- package/.agents/memory/backend-agent/failures.json +0 -1
- package/.agents/memory/backend-agent/learnings.json +0 -1
- package/.agents/memory/backend-agent/specialty.md +0 -3
- package/.agents/memory/backend-agent/successes.json +0 -1
- package/.agents/memory/cloud-agent/failures.json +0 -1
- package/.agents/memory/cloud-agent/learnings.json +0 -1
- package/.agents/memory/cloud-agent/specialty.md +0 -3
- package/.agents/memory/cloud-agent/successes.json +0 -1
- package/.agents/memory/cms-agent/failures.json +0 -1
- package/.agents/memory/cms-agent/learnings.json +0 -1
- package/.agents/memory/cms-agent/specialty.md +0 -30
- package/.agents/memory/cms-agent/successes.json +0 -1
- package/.agents/memory/cro-agent/failures.json +0 -1
- package/.agents/memory/cro-agent/learnings.json +0 -1
- package/.agents/memory/cro-agent/specialty.md +0 -3
- package/.agents/memory/cro-agent/successes.json +0 -1
- package/.agents/memory/database-agent/failures.json +0 -1
- package/.agents/memory/database-agent/learnings.json +0 -1
- package/.agents/memory/database-agent/specialty.md +0 -3
- package/.agents/memory/database-agent/successes.json +0 -1
- package/.agents/memory/devops-agent/failures.json +0 -1
- package/.agents/memory/devops-agent/learnings.json +0 -1
- package/.agents/memory/devops-agent/specialty.md +0 -3
- package/.agents/memory/devops-agent/successes.json +0 -1
- package/.agents/memory/documentation-agent/failures.json +0 -1
- package/.agents/memory/documentation-agent/learnings.json +0 -1
- package/.agents/memory/documentation-agent/specialty.md +0 -33
- package/.agents/memory/documentation-agent/successes.json +0 -1
- package/.agents/memory/frontend-agent/failures.json +0 -1
- package/.agents/memory/frontend-agent/learnings.json +0 -1
- package/.agents/memory/frontend-agent/specialty.md +0 -30
- package/.agents/memory/frontend-agent/successes.json +0 -1
- package/.agents/memory/inventory-agent/failures.json +0 -1
- package/.agents/memory/inventory-agent/inventory/index.json +0 -1
- package/.agents/memory/inventory-agent/inventory/types.json +0 -1
- package/.agents/memory/inventory-agent/inventory/variables.json +0 -1
- package/.agents/memory/inventory-agent/learnings.json +0 -1
- package/.agents/memory/inventory-agent/specialty.md +0 -129
- package/.agents/memory/inventory-agent/successes.json +0 -1
- package/.agents/memory/nextjs-agent/failures.json +0 -1
- package/.agents/memory/nextjs-agent/learnings.json +0 -1
- package/.agents/memory/nextjs-agent/specialty.md +0 -3
- package/.agents/memory/nextjs-agent/successes.json +0 -1
- package/.agents/memory/pentest-agent/failures.json +0 -1
- package/.agents/memory/pentest-agent/learnings.json +0 -1
- package/.agents/memory/pentest-agent/specialty.md +0 -3
- package/.agents/memory/pentest-agent/successes.json +0 -1
- package/.agents/memory/planning-agent/specialty.md +0 -13
- package/.agents/memory/production-control-agent/failures.json +0 -1
- package/.agents/memory/production-control-agent/learnings.json +0 -1
- package/.agents/memory/production-control-agent/specialty.md +0 -29
- package/.agents/memory/production-control-agent/successes.json +0 -1
- package/.agents/memory/quality-agent/failures.json +0 -1
- package/.agents/memory/quality-agent/learnings.json +0 -1
- package/.agents/memory/quality-agent/specialty.md +0 -31
- package/.agents/memory/quality-agent/successes.json +0 -1
- package/.agents/memory/rag-agent/failures.json +0 -1
- package/.agents/memory/rag-agent/learnings.json +0 -1
- package/.agents/memory/rag-agent/specialty.md +0 -3
- package/.agents/memory/rag-agent/successes.json +0 -1
- package/.agents/memory/reference-repositories.json +0 -271
- package/.agents/memory/route-agent/failures.json +0 -1
- package/.agents/memory/route-agent/learnings.json +0 -1
- package/.agents/memory/route-agent/specialty.md +0 -29
- package/.agents/memory/route-agent/successes.json +0 -1
- package/.agents/memory/security-agent/failures.json +0 -1
- package/.agents/memory/security-agent/learnings.json +0 -1
- package/.agents/memory/security-agent/specialty.md +0 -31
- package/.agents/memory/security-agent/successes.json +0 -1
- package/.agents/memory/seo-agent/failures.json +0 -1
- package/.agents/memory/seo-agent/learnings.json +0 -1
- package/.agents/memory/seo-agent/specialty.md +0 -31
- package/.agents/memory/seo-agent/successes.json +0 -1
- package/.agents/memory/stack-boundary-agent/failures.json +0 -1
- package/.agents/memory/stack-boundary-agent/learnings.json +0 -1
- package/.agents/memory/stack-boundary-agent/specialty.md +0 -3
- package/.agents/memory/stack-boundary-agent/successes.json +0 -1
- package/.agents/memory/testing-agent/failures.json +0 -1
- package/.agents/memory/testing-agent/learnings.json +0 -1
- package/.agents/memory/testing-agent/specialty.md +0 -3
- package/.agents/memory/testing-agent/successes.json +0 -1
- package/.agents/memory/ui-data-map-agent/failures.json +0 -1
- package/.agents/memory/ui-data-map-agent/learnings.json +0 -1
- package/.agents/memory/ui-data-map-agent/specialty.md +0 -3
- package/.agents/memory/ui-data-map-agent/successes.json +0 -1
- package/.agents/memory/uiux-agent/failures.json +0 -1
- package/.agents/memory/uiux-agent/learnings.json +0 -1
- package/.agents/memory/uiux-agent/specialty.md +0 -3
- package/.agents/memory/uiux-agent/successes.json +0 -1
- package/docs/LEARNING_SYSTEM.md +0 -326
- package/docs/SYSTEM_FLOW_AUDIT.md +0 -115
- package/skills/loki-mode/.github/workflows/claude-code-review.yml +0 -57
- package/skills/loki-mode/.github/workflows/claude.yml +0 -50
- package/skills/loki-mode/.github/workflows/release.yml +0 -128
- package/skills/loki-mode/autonomy/.loki/dashboard/index.html +0 -497
- package/skills/loki-mode/benchmarks/datasets/humaneval.jsonl +0 -164
- package/skills/loki-mode/benchmarks/datasets/swebench-lite.json +0 -10
- package/skills/loki-mode/benchmarks/prepare-submission.sh +0 -215
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-23-56/SUMMARY.md +0 -48
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-23-56/humaneval-results.json +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-23-56/swebench-results.json +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/SUMMARY.md +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-results.json +0 -1000
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/0.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/1.py +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/10.py +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/100.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/101.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/102.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/103.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/104.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/105.py +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/106.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/107.py +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/108.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/109.py +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/11.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/110.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/111.py +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/112.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/113.py +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/114.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/115.py +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/116.py +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/117.py +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/118.py +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/119.py +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/12.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/120.py +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/121.py +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/122.py +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/123.py +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/124.py +0 -56
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/125.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/126.py +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/127.py +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/128.py +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/129.py +0 -61
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/13.py +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/130.py +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/131.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/132.py +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/133.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/134.py +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/135.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/136.py +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/137.py +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/138.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/139.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/14.py +0 -9
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/140.py +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/141.py +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/142.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/143.py +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/144.py +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/145.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/146.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/147.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/148.py +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/149.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/15.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/150.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/151.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/152.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/153.py +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/154.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/155.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/156.py +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/157.py +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/158.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/159.py +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/16.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/160.py +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/161.py +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/162.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/163.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/17.py +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/18.py +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/19.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/2.py +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/20.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/21.py +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/22.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/23.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/24.py +0 -9
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/25.py +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/26.py +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/27.py +0 -6
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/28.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/29.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/3.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/30.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/31.py +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/32.py +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/33.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/34.py +0 -6
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/35.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/36.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/37.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/38.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/39.py +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/4.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/40.py +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/41.py +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/42.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/43.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/44.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/45.py +0 -6
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/46.py +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/47.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/48.py +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/49.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/5.py +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/50.py +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/51.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/52.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/53.py +0 -8
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/54.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/55.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/56.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/57.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/58.py +0 -9
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/59.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/6.py +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/60.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/61.py +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/62.py +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/63.py +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/64.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/65.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/66.py +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/67.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/68.py +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/69.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/7.py +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/70.py +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/71.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/72.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/73.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/74.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/75.py +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/76.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/77.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/78.py +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/79.py +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/8.py +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/80.py +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/81.py +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/82.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/83.py +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/84.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/85.py +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/86.py +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/87.py +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/88.py +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/89.py +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/9.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/90.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/91.py +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/92.py +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/93.py +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/94.py +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/95.py +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/96.py +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/97.py +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/98.py +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-00-49-17/humaneval-solutions/99.py +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/SUMMARY.md +0 -48
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-12907.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-14182.patch +0 -59
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-14365.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-14995.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-6938.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/astropy__astropy-7746.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-10914.patch +0 -72
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-10924.patch +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11001.patch +0 -80
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11019.patch +0 -489
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11039.patch +0 -87
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11049.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11099.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11133.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11179.patch +0 -49
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11283.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11422.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11564.patch +0 -285
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11583.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11620.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11630.patch +0 -45
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11742.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11797.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11815.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11848.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11905.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11910.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11964.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-11999.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12113.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12125.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12184.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12284.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12286.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12308.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12453.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12470.patch +0 -53
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12497.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12589.patch +0 -157
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12700.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12708.patch +0 -64
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12747.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12856.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12908.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12915.patch +0 -82
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-12983.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13028.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13033.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13158.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13220.patch +0 -57
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13230.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13265.patch +0 -44
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13315.patch +0 -53
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13321.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13401.patch +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13447.patch +0 -40
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13448.patch +0 -203
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13551.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13590.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13658.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13660.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13710.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13757.patch +0 -51
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13768.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13925.patch +0 -116
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13933.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-13964.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14016.patch +0 -138
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14017.patch +0 -88
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14155.patch +0 -74
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14238.patch +0 -132
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14382.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14411.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14534.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14580.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14608.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14667.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14672.patch +0 -59
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14730.patch +0 -80
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14752.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14787.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14855.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14915.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14997.patch +0 -40
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-14999.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15061.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15202.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15213.patch +0 -70
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15252.patch +0 -63
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15320.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15347.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15388.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15400.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15498.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15695.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15738.patch +0 -251
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15781.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15789.patch +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15790.patch +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15814.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15819.patch +0 -127
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15851.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15902.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-15996.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16041.patch +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16046.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16139.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16229.patch +0 -142
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16255.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16379.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16400.patch +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16408.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16527.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16595.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16816.patch +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16820.patch +0 -188
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-16873.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-17051.patch +0 -51
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/django__django-17087.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-18869.patch +0 -75
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-22711.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-22835.patch +0 -58
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23299.patch +0 -92
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23314.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23476.patch +0 -73
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23562.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23563.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23913.patch +0 -207
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23964.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-23987.patch +0 -43
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-24149.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-24265.patch +0 -76
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-24334.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-24970.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25079.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25311.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25332.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25433.patch +0 -240
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25442.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-25498.patch +0 -79
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-26011.patch +0 -90
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/matplotlib__matplotlib-26020.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/mwaskom__seaborn-2848.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/mwaskom__seaborn-3010.patch +0 -60
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/mwaskom__seaborn-3190.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/mwaskom__seaborn-3407.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pallets__flask-4045.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pallets__flask-4992.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pallets__flask-5063.patch +0 -99
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-1963.patch +0 -117
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-2148.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-2317.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-2674.patch +0 -157
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-3362.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/psf__requests-863.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pydata__xarray-3364.patch +0 -392
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pydata__xarray-4094.patch +0 -40
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pydata__xarray-4248.patch +0 -124
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pydata__xarray-4493.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pydata__xarray-5131.patch +0 -45
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-5859.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-6506.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-7080.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-7114.patch +0 -161
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-7228.patch +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pylint-dev__pylint-7993.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-11143.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-11148.patch +0 -57
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5103.patch +0 -345
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5221.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5227.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5413.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5495.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-5692.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-6116.patch +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-7168.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-7220.patch +0 -535
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-7373.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-7432.patch +0 -76
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-7490.patch +0 -61
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-8365.patch +0 -123
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-8906.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/pytest-dev__pytest-9359.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-10297.patch +0 -53
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-10508.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-10949.patch +0 -94
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-11040.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-11281.patch +0 -65
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-12471.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13142.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13241.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13439.patch +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13496.patch +0 -59
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13497.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13584.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-13779.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-14087.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-14092.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-14894.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-14983.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-15512.patch +0 -77
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-15535.patch +0 -44
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-25500.patch +0 -64
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-25570.patch +0 -96
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-25638.patch +0 -52
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/scikit-learn__scikit-learn-25747.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-10325.patch +0 -185
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-10451.patch +0 -129
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-11445.patch +0 -119
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-7686.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-7738.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-7975.patch +0 -89
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8273.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8282.patch +0 -95
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8435.patch +0 -104
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8474.patch +0 -73
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8506.patch +0 -49
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8595.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8627.patch +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8713.patch +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8721.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sphinx-doc__sphinx-8801.patch +0 -73
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-11400.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-11870.patch +0 -96
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-11897.patch +0 -134
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-12171.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-12236.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-12419.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-12454.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-12481.patch +0 -68
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13031.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13043.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13146.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13177.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13437.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13471.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13480.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13647.patch +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13773.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13895.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13915.patch +0 -97
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-13971.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14024.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14308.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14317.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14396.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14774.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-14817.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15011.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15308.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15345.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15346.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15609.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-15678.patch +0 -92
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-16106.patch +0 -78
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-16281.patch +0 -141
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-16503.patch +0 -69
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-16792.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-16988.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-17022.patch +0 -65
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-17139.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-17630.patch +0 -90
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-17655.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18057.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18087.patch +0 -81
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18189.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18199.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18532.patch +0 -130
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18621.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18698.patch +0 -105
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-18835.patch +0 -30
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-19007.patch +0 -66
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-19254.patch +0 -72
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-19487.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20049.patch +0 -125
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20154.patch +0 -46
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20212.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20322.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20442.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20590.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-20639.patch +0 -66
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21055.patch +0 -56
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21171.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21379.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21612.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21614.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21627.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-21847.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-22005.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-22714.patch +0 -486
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-22840.patch +0 -76
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-23117.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-23191.patch +0 -302
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-23262.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-24066.patch +0 -66
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-24102.patch +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-24152.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-24213.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-patches/sympy__sympy-24909.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-predictions.json +0 -1502
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-24-17/swebench-results.json +0 -1516
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/SUMMARY.md +0 -48
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-12907.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-14182.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-14365.patch +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-14995.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-6938.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/astropy__astropy-7746.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-10914.patch +0 -76
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-10924.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11001.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11019.patch +0 -90
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11039.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11049.patch +0 -10
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11099.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11133.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11179.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11283.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11422.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11564.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11583.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11620.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11630.patch +0 -79
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11742.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11797.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11815.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11848.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11905.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11910.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11964.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-11999.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12113.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12125.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12184.patch +0 -83
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12284.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12286.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12308.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12453.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12470.patch +0 -137
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12497.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12589.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12700.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12708.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12747.patch +0 -43
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12856.patch +0 -61
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12908.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12915.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-12983.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-13028.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-13033.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-13158.patch +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-patches/django__django-13220.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-predictions.json +0 -252
- package/skills/loki-mode/benchmarks/results/2026-01-05-01-35-39/swebench-results.json +0 -266
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/SUMMARY.md +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-12907.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-14182.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-14365.patch +0 -44
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-14995.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-6938.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/astropy__astropy-7746.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-10914.patch +0 -76
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-10924.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11001.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11019.patch +0 -158
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11039.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11049.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11099.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11133.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11179.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11283.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11422.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11564.patch +0 -140
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11583.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11620.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11630.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11742.patch +0 -49
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11797.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11815.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11848.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11905.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11910.patch +0 -100
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11964.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-11999.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12113.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12125.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12184.patch +0 -82
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12284.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12286.patch +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12308.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12453.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12470.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12497.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12589.patch +0 -56
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12700.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12708.patch +0 -61
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12747.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12856.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12908.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12915.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-12983.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13028.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13033.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13158.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13220.patch +0 -126
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13230.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13265.patch +0 -87
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13315.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13321.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13401.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13447.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13448.patch +0 -94
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13551.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13590.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13658.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13660.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13710.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13757.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13768.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13925.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13933.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-13964.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14016.patch +0 -103
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14017.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14155.patch +0 -121
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14238.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14382.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14411.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14534.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14580.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14608.patch +0 -34
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14667.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14672.patch +0 -12
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14730.patch +0 -43
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14752.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14787.patch +0 -35
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14855.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14915.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14997.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-14999.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15061.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15202.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15213.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15252.patch +0 -59
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15320.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15347.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15388.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15400.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15498.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15695.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15738.patch +0 -185
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15781.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15789.patch +0 -69
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15790.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15814.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15819.patch +0 -101
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15851.patch +0 -40
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15902.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-15996.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16041.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16046.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16139.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16229.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16255.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16379.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16400.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16408.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16527.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16595.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16816.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16820.patch +0 -98
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16873.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-16910.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-17051.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/django__django-17087.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-18869.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-22711.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-22835.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23299.patch +0 -65
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23314.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23476.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23562.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23563.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23913.patch +0 -95
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23964.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-23987.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-24149.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-24265.patch +0 -52
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-24334.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-24970.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25079.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25311.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25332.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25433.patch +0 -126
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25442.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-25498.patch +0 -67
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-26011.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/matplotlib__matplotlib-26020.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/mwaskom__seaborn-2848.patch +0 -95
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/mwaskom__seaborn-3010.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/mwaskom__seaborn-3190.patch +0 -73
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/mwaskom__seaborn-3407.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pallets__flask-4045.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pallets__flask-4992.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pallets__flask-5063.patch +0 -90
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-1963.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-2148.patch +0 -79
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-2317.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-2674.patch +0 -58
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-3362.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/psf__requests-863.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pydata__xarray-3364.patch +0 -159
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pydata__xarray-4094.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pydata__xarray-4248.patch +0 -134
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pydata__xarray-4493.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pydata__xarray-5131.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-5859.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-6506.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-7080.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-7114.patch +0 -51
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-7228.patch +0 -80
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pylint-dev__pylint-7993.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-11143.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-11148.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5103.patch +0 -350
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5221.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5227.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5413.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5495.patch +0 -44
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-5692.patch +0 -69
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-6116.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-7168.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-7220.patch +0 -391
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-7373.patch +0 -48
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-7432.patch +0 -99
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-7490.patch +0 -4
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-8365.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-8906.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/pytest-dev__pytest-9359.patch +0 -89
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-10297.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-10508.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-10949.patch +0 -66
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-11040.patch +0 -147
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-11281.patch +0 -107
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-12471.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13142.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13241.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13439.patch +0 -29
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13496.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13497.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13584.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-13779.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-14087.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-14092.patch +0 -61
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-14894.patch +0 -45
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-14983.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-15512.patch +0 -143
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-15535.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-25500.patch +0 -79
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-25570.patch +0 -71
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-25638.patch +0 -70
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/scikit-learn__scikit-learn-25747.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-10325.patch +0 -153
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-10451.patch +0 -99
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-11445.patch +0 -67
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-7686.patch +0 -50
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-7738.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-7975.patch +0 -92
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8273.patch +0 -103
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8282.patch +0 -45
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8435.patch +0 -56
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8474.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8506.patch +0 -33
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8595.patch +0 -45
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8627.patch +0 -62
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8713.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8721.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sphinx-doc__sphinx-8801.patch +0 -101
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-11400.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-11870.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-11897.patch +0 -152
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-12171.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-12236.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-12419.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-12454.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-12481.patch +0 -44
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13031.patch +0 -71
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13043.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13146.patch +0 -54
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13177.patch +0 -14
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13437.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13471.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13480.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13647.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13773.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13895.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13915.patch +0 -70
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-13971.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14024.patch +0 -56
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14308.patch +0 -189
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14317.patch +0 -41
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14396.patch +0 -32
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14774.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-14817.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15011.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15308.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15345.patch +0 -13
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15346.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15609.patch +0 -11
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-15678.patch +0 -87
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-16106.patch +0 -66
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-16281.patch +0 -88
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-16503.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-16792.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-16988.patch +0 -22
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-17022.patch +0 -38
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-17139.patch +0 -48
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-17630.patch +0 -116
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-17655.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18057.patch +0 -31
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18087.patch +0 -55
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18189.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18199.patch +0 -25
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18532.patch +0 -84
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18621.patch +0 -21
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18698.patch +0 -60
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-18835.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-19007.patch +0 -143
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-19254.patch +0 -79
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-19487.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20049.patch +0 -37
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20154.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20212.patch +0 -15
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20322.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20442.patch +0 -73
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20590.patch +0 -16
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-20639.patch +0 -20
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21055.patch +0 -47
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21171.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21379.patch +0 -27
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21612.patch +0 -46
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21614.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21627.patch +0 -28
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-21847.patch +0 -24
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-22005.patch +0 -36
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-22714.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-22840.patch +0 -19
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-23117.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-23191.patch +0 -42
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-23262.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-24066.patch +0 -26
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-24102.patch +0 -17
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-24152.patch +0 -23
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-24213.patch +0 -18
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-patches/sympy__sympy-24909.patch +0 -39
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-predictions.json +0 -1802
- package/skills/loki-mode/benchmarks/results/2026-01-05-10-37-54/swebench-loki-results.json +0 -1816
- package/skills/loki-mode/benchmarks/results/SUMMARY.md +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-results.json +0 -1001
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/0.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/1.py +0 -36
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/10.py +0 -30
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/100.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/101.py +0 -17
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/102.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/103.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/104.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/105.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/106.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/107.py +0 -40
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/108.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/109.py +0 -53
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/11.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/110.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/111.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/112.py +0 -20
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/113.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/114.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/115.py +0 -41
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/116.py +0 -17
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/117.py +0 -30
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/118.py +0 -31
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/119.py +0 -35
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/12.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/120.py +0 -33
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/121.py +0 -15
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/122.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/123.py +0 -35
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/124.py +0 -58
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/125.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/126.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/127.py +0 -41
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/128.py +0 -31
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/129.py +0 -62
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/13.py +0 -17
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/130.py +0 -35
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/131.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/132.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/133.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/134.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/135.py +0 -20
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/136.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/137.py +0 -31
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/138.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/139.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/14.py +0 -14
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/140.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/141.py +0 -42
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/142.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/143.py +0 -40
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/144.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/145.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/146.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/147.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/148.py +0 -33
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/149.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/15.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/150.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/151.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/152.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/153.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/154.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/155.py +0 -20
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/156.py +0 -39
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/157.py +0 -28
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/158.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/159.py +0 -36
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/16.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/160.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/161.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/162.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/163.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/17.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/18.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/19.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/2.py +0 -15
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/20.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/21.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/22.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/23.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/24.py +0 -14
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/25.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/26.py +0 -17
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/27.py +0 -11
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/28.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/29.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/3.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/30.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/31.py +0 -34
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/32.py +0 -37
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/33.py +0 -19
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/34.py +0 -11
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/35.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/36.py +0 -19
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/37.py +0 -19
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/38.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/39.py +0 -40
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/4.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/40.py +0 -43
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/41.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/42.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/43.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/44.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/45.py +0 -11
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/46.py +0 -35
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/47.py +0 -19
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/48.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/49.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/5.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/50.py +0 -10
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/51.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/52.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/53.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/54.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/55.py +0 -20
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/56.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/57.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/58.py +0 -14
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/59.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/6.py +0 -33
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/60.py +0 -19
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/61.py +0 -27
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/62.py +0 -15
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/63.py +0 -30
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/64.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/65.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/66.py +0 -23
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/67.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/68.py +0 -55
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/69.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/7.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/70.py +0 -35
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/71.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/72.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/73.py +0 -22
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/74.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/75.py +0 -42
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/76.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/77.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/78.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/79.py +0 -18
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/8.py +0 -24
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/80.py +0 -26
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/81.py +0 -61
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/82.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/83.py +0 -13
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/84.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/85.py +0 -17
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/86.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/87.py +0 -31
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/88.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/89.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/9.py +0 -25
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/90.py +0 -21
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/91.py +0 -31
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/92.py +0 -29
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/93.py +0 -30
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/94.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/95.py +0 -32
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/96.py +0 -38
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/97.py +0 -16
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/98.py +0 -20
- package/skills/loki-mode/benchmarks/results/humaneval-loki-solutions/99.py +0 -36
- package/skills/loki-mode/benchmarks/run-benchmarks.sh +0 -1948
- package/skills/loki-mode/benchmarks/submission-template/README.md +0 -111
- package/skills/loki-mode/benchmarks/submission-template/metadata.yaml +0 -76
- package/skills/loki-mode/demo/README.md +0 -137
- package/skills/loki-mode/demo/loki-demo.gif +0 -0
- package/skills/loki-mode/demo/record-demo.sh +0 -69
- package/skills/loki-mode/demo/record-full-demo.sh +0 -208
- package/skills/loki-mode/demo/recordings/loki-demo.cast +0 -93
- package/skills/loki-mode/demo/run-demo-auto.sh +0 -293
- package/skills/loki-mode/demo/run-demo.sh +0 -323
- package/skills/loki-mode/demo/vhs-tape.tape +0 -223
- package/skills/loki-mode/demo/voice-over-script.md +0 -246
- package/skills/loki-mode/examples/api-only.md +0 -79
- package/skills/loki-mode/examples/full-stack-demo.md +0 -123
- package/skills/loki-mode/examples/simple-todo-app.md +0 -60
- package/skills/loki-mode/examples/static-landing-page.md +0 -73
- package/skills/loki-mode/examples/todo-app-generated/.loki/CONTINUITY.md +0 -59
- package/skills/loki-mode/examples/todo-app-generated/.loki/queue/completed.json +0 -1
- package/skills/loki-mode/examples/todo-app-generated/.loki/queue/dead-letter.json +0 -1
- package/skills/loki-mode/examples/todo-app-generated/.loki/queue/failed.json +0 -1
- package/skills/loki-mode/examples/todo-app-generated/.loki/queue/in-progress.json +0 -1
- package/skills/loki-mode/examples/todo-app-generated/.loki/queue/pending.json +0 -382
- package/skills/loki-mode/examples/todo-app-generated/.loki/state/orchestrator.json +0 -41
- package/skills/loki-mode/examples/todo-app-generated/E2E_VERIFICATION_REPORT.md +0 -668
- package/skills/loki-mode/examples/todo-app-generated/PRD.md +0 -60
- package/skills/loki-mode/examples/todo-app-generated/TASK_018_COMPLETION.md +0 -229
- package/skills/loki-mode/examples/todo-app-generated/TESTING_DOCUMENTATION.md +0 -327
- package/skills/loki-mode/examples/todo-app-generated/TEST_REPORT.md +0 -201
- package/skills/loki-mode/examples/todo-app-generated/VERIFICATION_SUMMARY.txt +0 -362
- package/skills/loki-mode/examples/todo-app-generated/backend/package-lock.json +0 -2698
- package/skills/loki-mode/examples/todo-app-generated/backend/package.json +0 -26
- package/skills/loki-mode/examples/todo-app-generated/backend/src/db/database.ts +0 -24
- package/skills/loki-mode/examples/todo-app-generated/backend/src/db/db.ts +0 -35
- package/skills/loki-mode/examples/todo-app-generated/backend/src/db/index.ts +0 -2
- package/skills/loki-mode/examples/todo-app-generated/backend/src/db/migrations.ts +0 -31
- package/skills/loki-mode/examples/todo-app-generated/backend/src/db/schema.sql +0 -8
- package/skills/loki-mode/examples/todo-app-generated/backend/src/index.ts +0 -44
- package/skills/loki-mode/examples/todo-app-generated/backend/src/routes/todos.ts +0 -155
- package/skills/loki-mode/examples/todo-app-generated/backend/src/types/index.ts +0 -35
- package/skills/loki-mode/examples/todo-app-generated/backend/todos.db-shm +0 -0
- package/skills/loki-mode/examples/todo-app-generated/backend/todos.db-wal +0 -0
- package/skills/loki-mode/examples/todo-app-generated/backend/tsconfig.json +0 -30
- package/skills/loki-mode/examples/todo-app-generated/frontend/index.html +0 -13
- package/skills/loki-mode/examples/todo-app-generated/frontend/package-lock.json +0 -2014
- package/skills/loki-mode/examples/todo-app-generated/frontend/package.json +0 -26
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/App.css +0 -384
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/App.tsx +0 -81
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/api/todos.ts +0 -57
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/components/ConfirmDialog.tsx +0 -26
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/components/EmptyState.tsx +0 -8
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/components/TodoForm.tsx +0 -43
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/components/TodoItem.tsx +0 -36
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/components/TodoList.tsx +0 -27
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/hooks/useTodos.ts +0 -81
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/index.css +0 -48
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/main.tsx +0 -10
- package/skills/loki-mode/examples/todo-app-generated/frontend/src/vite-env.d.ts +0 -1
- package/skills/loki-mode/examples/todo-app-generated/frontend/tsconfig.json +0 -23
- package/skills/loki-mode/examples/todo-app-generated/frontend/tsconfig.node.json +0 -10
- package/skills/loki-mode/examples/todo-app-generated/frontend/vite.config.ts +0 -15
- package/skills/theme-factory/theme-showcase.pdf +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/core.cpython-314.pyc +0 -0
- package/skills/ui-ux-pro-max/scripts/__pycache__/design_system.cpython-314.pyc +0 -0
- package/skills/web-artifacts-builder/scripts/shadcn-components.tar.gz +0 -0
|
@@ -0,0 +1,458 @@
|
|
|
1
|
+
#!/usr/bin/env python3
|
|
2
|
+
"""
|
|
3
|
+
Skill: vulnerability-scanner
|
|
4
|
+
Script: security_scan.py
|
|
5
|
+
Purpose: Validate that security principles from SKILL.md are applied correctly
|
|
6
|
+
Usage: python security_scan.py <project_path> [--scan-type all|deps|secrets|patterns|config]
|
|
7
|
+
Output: JSON with validation findings
|
|
8
|
+
|
|
9
|
+
This script verifies:
|
|
10
|
+
1. Dependencies - Supply chain security (OWASP A03)
|
|
11
|
+
2. Secrets - No hardcoded credentials (OWASP A04)
|
|
12
|
+
3. Code Patterns - Dangerous patterns identified (OWASP A05)
|
|
13
|
+
4. Configuration - Security settings validated (OWASP A02)
|
|
14
|
+
"""
|
|
15
|
+
import subprocess
|
|
16
|
+
import json
|
|
17
|
+
import os
|
|
18
|
+
import sys
|
|
19
|
+
import re
|
|
20
|
+
import argparse
|
|
21
|
+
from pathlib import Path
|
|
22
|
+
from typing import Dict, List, Any
|
|
23
|
+
from datetime import datetime
|
|
24
|
+
|
|
25
|
+
# Fix Windows console encoding for Unicode output
|
|
26
|
+
try:
|
|
27
|
+
sys.stdout.reconfigure(encoding='utf-8', errors='replace')
|
|
28
|
+
sys.stderr.reconfigure(encoding='utf-8', errors='replace')
|
|
29
|
+
except AttributeError:
|
|
30
|
+
pass # Python < 3.7
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
# ============================================================================
|
|
34
|
+
# CONFIGURATION
|
|
35
|
+
# ============================================================================
|
|
36
|
+
|
|
37
|
+
SECRET_PATTERNS = [
|
|
38
|
+
# API Keys & Tokens
|
|
39
|
+
(r'api[_-]?key\s*[=:]\s*["\'][^"\']{10,}["\']', "API Key", "high"),
|
|
40
|
+
(r'token\s*[=:]\s*["\'][^"\']{10,}["\']', "Token", "high"),
|
|
41
|
+
(r'bearer\s+[a-zA-Z0-9\-_.]+', "Bearer Token", "critical"),
|
|
42
|
+
|
|
43
|
+
# Cloud Credentials
|
|
44
|
+
(r'AKIA[0-9A-Z]{16}', "AWS Access Key", "critical"),
|
|
45
|
+
(r'aws[_-]?secret[_-]?access[_-]?key\s*[=:]\s*["\'][^"\']+["\']', "AWS Secret", "critical"),
|
|
46
|
+
(r'AZURE[_-]?[A-Z_]+\s*[=:]\s*["\'][^"\']+["\']', "Azure Credential", "critical"),
|
|
47
|
+
(r'GOOGLE[_-]?[A-Z_]+\s*[=:]\s*["\'][^"\']+["\']', "GCP Credential", "critical"),
|
|
48
|
+
|
|
49
|
+
# Database & Connections
|
|
50
|
+
(r'password\s*[=:]\s*["\'][^"\']{4,}["\']', "Password", "high"),
|
|
51
|
+
(r'(mongodb|postgres|mysql|redis):\/\/[^\s"\']+', "Database Connection String", "critical"),
|
|
52
|
+
|
|
53
|
+
# Private Keys
|
|
54
|
+
(r'-----BEGIN\s+(RSA|PRIVATE|EC)\s+KEY-----', "Private Key", "critical"),
|
|
55
|
+
(r'ssh-rsa\s+[A-Za-z0-9+/]+', "SSH Key", "critical"),
|
|
56
|
+
|
|
57
|
+
# JWT
|
|
58
|
+
(r'eyJ[A-Za-z0-9-_]+\.eyJ[A-Za-z0-9-_]+\.[A-Za-z0-9-_]+', "JWT Token", "high"),
|
|
59
|
+
]
|
|
60
|
+
|
|
61
|
+
DANGEROUS_PATTERNS = [
|
|
62
|
+
# Injection risks
|
|
63
|
+
(r'eval\s*\(', "eval() usage", "critical", "Code Injection risk"),
|
|
64
|
+
(r'exec\s*\(', "exec() usage", "critical", "Code Injection risk"),
|
|
65
|
+
(r'new\s+Function\s*\(', "Function constructor", "high", "Code Injection risk"),
|
|
66
|
+
(r'child_process\.exec\s*\(', "child_process.exec", "high", "Command Injection risk"),
|
|
67
|
+
(r'subprocess\.call\s*\([^)]*shell\s*=\s*True', "subprocess with shell=True", "high", "Command Injection risk"),
|
|
68
|
+
|
|
69
|
+
# XSS risks
|
|
70
|
+
(r'dangerouslySetInnerHTML', "dangerouslySetInnerHTML", "high", "XSS risk"),
|
|
71
|
+
(r'\.innerHTML\s*=', "innerHTML assignment", "medium", "XSS risk"),
|
|
72
|
+
(r'document\.write\s*\(', "document.write", "medium", "XSS risk"),
|
|
73
|
+
|
|
74
|
+
# SQL Injection indicators
|
|
75
|
+
(r'["\'][^"\']*\+\s*[a-zA-Z_]+\s*\+\s*["\'].*(?:SELECT|INSERT|UPDATE|DELETE)', "SQL String Concat", "critical", "SQL Injection risk"),
|
|
76
|
+
(r'f"[^"]*(?:SELECT|INSERT|UPDATE|DELETE)[^"]*\{', "SQL f-string", "critical", "SQL Injection risk"),
|
|
77
|
+
|
|
78
|
+
# Insecure configurations
|
|
79
|
+
(r'verify\s*=\s*False', "SSL Verify Disabled", "high", "MITM risk"),
|
|
80
|
+
(r'--insecure', "Insecure flag", "medium", "Security disabled"),
|
|
81
|
+
(r'disable[_-]?ssl', "SSL Disabled", "high", "MITM risk"),
|
|
82
|
+
|
|
83
|
+
# Unsafe deserialization
|
|
84
|
+
(r'pickle\.loads?\s*\(', "pickle usage", "high", "Deserialization risk"),
|
|
85
|
+
(r'yaml\.load\s*\([^)]*\)(?!\s*,\s*Loader)', "Unsafe YAML load", "high", "Deserialization risk"),
|
|
86
|
+
]
|
|
87
|
+
|
|
88
|
+
SKIP_DIRS = {'node_modules', '.git', 'dist', 'build', '__pycache__', '.venv', 'venv', '.next'}
|
|
89
|
+
CODE_EXTENSIONS = {'.js', '.ts', '.jsx', '.tsx', '.py', '.go', '.java', '.rb', '.php'}
|
|
90
|
+
CONFIG_EXTENSIONS = {'.json', '.yaml', '.yml', '.toml', '.env', '.env.local', '.env.development'}
|
|
91
|
+
|
|
92
|
+
|
|
93
|
+
# ============================================================================
|
|
94
|
+
# SCANNING FUNCTIONS
|
|
95
|
+
# ============================================================================
|
|
96
|
+
|
|
97
|
+
def scan_dependencies(project_path: str) -> Dict[str, Any]:
|
|
98
|
+
"""
|
|
99
|
+
Validate supply chain security (OWASP A03).
|
|
100
|
+
Checks: npm audit, lock file presence, dependency age.
|
|
101
|
+
"""
|
|
102
|
+
results = {"tool": "dependency_scanner", "findings": [], "status": "[OK] Secure"}
|
|
103
|
+
|
|
104
|
+
# Check for lock files
|
|
105
|
+
lock_files = {
|
|
106
|
+
"npm": ["package-lock.json", "npm-shrinkwrap.json"],
|
|
107
|
+
"yarn": ["yarn.lock"],
|
|
108
|
+
"pnpm": ["pnpm-lock.yaml"],
|
|
109
|
+
"pip": ["requirements.txt", "Pipfile.lock", "poetry.lock"],
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
found_locks = []
|
|
113
|
+
missing_locks = []
|
|
114
|
+
|
|
115
|
+
for manager, files in lock_files.items():
|
|
116
|
+
pkg_file = "package.json" if manager in ["npm", "yarn", "pnpm"] else "setup.py"
|
|
117
|
+
pkg_path = Path(project_path) / pkg_file
|
|
118
|
+
|
|
119
|
+
if pkg_path.exists() or (manager == "pip" and (Path(project_path) / "requirements.txt").exists()):
|
|
120
|
+
has_lock = any((Path(project_path) / f).exists() for f in files)
|
|
121
|
+
if has_lock:
|
|
122
|
+
found_locks.append(manager)
|
|
123
|
+
else:
|
|
124
|
+
missing_locks.append(manager)
|
|
125
|
+
results["findings"].append({
|
|
126
|
+
"type": "Missing Lock File",
|
|
127
|
+
"severity": "high",
|
|
128
|
+
"message": f"{manager}: No lock file found. Supply chain integrity at risk."
|
|
129
|
+
})
|
|
130
|
+
|
|
131
|
+
# Run npm audit if applicable
|
|
132
|
+
if (Path(project_path) / "package.json").exists():
|
|
133
|
+
try:
|
|
134
|
+
result = subprocess.run(
|
|
135
|
+
["npm", "audit", "--json"],
|
|
136
|
+
cwd=project_path,
|
|
137
|
+
capture_output=True,
|
|
138
|
+
text=True,
|
|
139
|
+
timeout=60
|
|
140
|
+
)
|
|
141
|
+
|
|
142
|
+
try:
|
|
143
|
+
audit_data = json.loads(result.stdout)
|
|
144
|
+
vulnerabilities = audit_data.get("vulnerabilities", {})
|
|
145
|
+
|
|
146
|
+
severity_count = {"critical": 0, "high": 0, "moderate": 0, "low": 0}
|
|
147
|
+
for vuln in vulnerabilities.values():
|
|
148
|
+
sev = vuln.get("severity", "low").lower()
|
|
149
|
+
if sev in severity_count:
|
|
150
|
+
severity_count[sev] += 1
|
|
151
|
+
|
|
152
|
+
if severity_count["critical"] > 0:
|
|
153
|
+
results["status"] = "[!!] Critical vulnerabilities"
|
|
154
|
+
results["findings"].append({
|
|
155
|
+
"type": "npm audit",
|
|
156
|
+
"severity": "critical",
|
|
157
|
+
"message": f"{severity_count['critical']} critical vulnerabilities in dependencies"
|
|
158
|
+
})
|
|
159
|
+
elif severity_count["high"] > 0:
|
|
160
|
+
results["status"] = "[!] High vulnerabilities"
|
|
161
|
+
results["findings"].append({
|
|
162
|
+
"type": "npm audit",
|
|
163
|
+
"severity": "high",
|
|
164
|
+
"message": f"{severity_count['high']} high severity vulnerabilities"
|
|
165
|
+
})
|
|
166
|
+
|
|
167
|
+
results["npm_audit"] = severity_count
|
|
168
|
+
|
|
169
|
+
except json.JSONDecodeError:
|
|
170
|
+
pass
|
|
171
|
+
|
|
172
|
+
except (FileNotFoundError, subprocess.TimeoutExpired):
|
|
173
|
+
pass
|
|
174
|
+
|
|
175
|
+
if not results["findings"]:
|
|
176
|
+
results["status"] = "[OK] Supply chain checks passed"
|
|
177
|
+
|
|
178
|
+
return results
|
|
179
|
+
|
|
180
|
+
|
|
181
|
+
def scan_secrets(project_path: str) -> Dict[str, Any]:
|
|
182
|
+
"""
|
|
183
|
+
Validate no hardcoded secrets (OWASP A04).
|
|
184
|
+
Checks: API keys, tokens, passwords, cloud credentials.
|
|
185
|
+
"""
|
|
186
|
+
results = {
|
|
187
|
+
"tool": "secret_scanner",
|
|
188
|
+
"findings": [],
|
|
189
|
+
"status": "[OK] No secrets detected",
|
|
190
|
+
"scanned_files": 0,
|
|
191
|
+
"by_severity": {"critical": 0, "high": 0, "medium": 0}
|
|
192
|
+
}
|
|
193
|
+
|
|
194
|
+
for root, dirs, files in os.walk(project_path):
|
|
195
|
+
dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
|
|
196
|
+
|
|
197
|
+
for file in files:
|
|
198
|
+
ext = Path(file).suffix.lower()
|
|
199
|
+
if ext not in CODE_EXTENSIONS and ext not in CONFIG_EXTENSIONS:
|
|
200
|
+
continue
|
|
201
|
+
|
|
202
|
+
filepath = Path(root) / file
|
|
203
|
+
results["scanned_files"] += 1
|
|
204
|
+
|
|
205
|
+
try:
|
|
206
|
+
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
|
207
|
+
content = f.read()
|
|
208
|
+
|
|
209
|
+
for pattern, secret_type, severity in SECRET_PATTERNS:
|
|
210
|
+
matches = re.findall(pattern, content, re.IGNORECASE)
|
|
211
|
+
if matches:
|
|
212
|
+
results["findings"].append({
|
|
213
|
+
"file": str(filepath.relative_to(project_path)),
|
|
214
|
+
"type": secret_type,
|
|
215
|
+
"severity": severity,
|
|
216
|
+
"count": len(matches)
|
|
217
|
+
})
|
|
218
|
+
results["by_severity"][severity] += len(matches)
|
|
219
|
+
|
|
220
|
+
except Exception:
|
|
221
|
+
pass
|
|
222
|
+
|
|
223
|
+
if results["by_severity"]["critical"] > 0:
|
|
224
|
+
results["status"] = "[!!] CRITICAL: Secrets exposed!"
|
|
225
|
+
elif results["by_severity"]["high"] > 0:
|
|
226
|
+
results["status"] = "[!] HIGH: Secrets found"
|
|
227
|
+
elif sum(results["by_severity"].values()) > 0:
|
|
228
|
+
results["status"] = "[?] Potential secrets detected"
|
|
229
|
+
|
|
230
|
+
# Limit findings for output
|
|
231
|
+
results["findings"] = results["findings"][:15]
|
|
232
|
+
|
|
233
|
+
return results
|
|
234
|
+
|
|
235
|
+
|
|
236
|
+
def scan_code_patterns(project_path: str) -> Dict[str, Any]:
|
|
237
|
+
"""
|
|
238
|
+
Validate dangerous code patterns (OWASP A05).
|
|
239
|
+
Checks: Injection risks, XSS, unsafe deserialization.
|
|
240
|
+
"""
|
|
241
|
+
results = {
|
|
242
|
+
"tool": "pattern_scanner",
|
|
243
|
+
"findings": [],
|
|
244
|
+
"status": "[OK] No dangerous patterns",
|
|
245
|
+
"scanned_files": 0,
|
|
246
|
+
"by_category": {}
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
for root, dirs, files in os.walk(project_path):
|
|
250
|
+
dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
|
|
251
|
+
|
|
252
|
+
for file in files:
|
|
253
|
+
ext = Path(file).suffix.lower()
|
|
254
|
+
if ext not in CODE_EXTENSIONS:
|
|
255
|
+
continue
|
|
256
|
+
|
|
257
|
+
filepath = Path(root) / file
|
|
258
|
+
results["scanned_files"] += 1
|
|
259
|
+
|
|
260
|
+
try:
|
|
261
|
+
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
|
262
|
+
lines = f.readlines()
|
|
263
|
+
|
|
264
|
+
for line_num, line in enumerate(lines, 1):
|
|
265
|
+
for pattern, name, severity, category in DANGEROUS_PATTERNS:
|
|
266
|
+
if re.search(pattern, line, re.IGNORECASE):
|
|
267
|
+
results["findings"].append({
|
|
268
|
+
"file": str(filepath.relative_to(project_path)),
|
|
269
|
+
"line": line_num,
|
|
270
|
+
"pattern": name,
|
|
271
|
+
"severity": severity,
|
|
272
|
+
"category": category,
|
|
273
|
+
"snippet": line.strip()[:80]
|
|
274
|
+
})
|
|
275
|
+
results["by_category"][category] = results["by_category"].get(category, 0) + 1
|
|
276
|
+
|
|
277
|
+
except Exception:
|
|
278
|
+
pass
|
|
279
|
+
|
|
280
|
+
critical_count = sum(1 for f in results["findings"] if f["severity"] == "critical")
|
|
281
|
+
high_count = sum(1 for f in results["findings"] if f["severity"] == "high")
|
|
282
|
+
|
|
283
|
+
if critical_count > 0:
|
|
284
|
+
results["status"] = f"[!!] CRITICAL: {critical_count} dangerous patterns"
|
|
285
|
+
elif high_count > 0:
|
|
286
|
+
results["status"] = f"[!] HIGH: {high_count} risky patterns"
|
|
287
|
+
elif results["findings"]:
|
|
288
|
+
results["status"] = "[?] Some patterns need review"
|
|
289
|
+
|
|
290
|
+
# Limit findings
|
|
291
|
+
results["findings"] = results["findings"][:20]
|
|
292
|
+
|
|
293
|
+
return results
|
|
294
|
+
|
|
295
|
+
|
|
296
|
+
def scan_configuration(project_path: str) -> Dict[str, Any]:
|
|
297
|
+
"""
|
|
298
|
+
Validate security configuration (OWASP A02).
|
|
299
|
+
Checks: Security headers, CORS, debug modes.
|
|
300
|
+
"""
|
|
301
|
+
results = {
|
|
302
|
+
"tool": "config_scanner",
|
|
303
|
+
"findings": [],
|
|
304
|
+
"status": "[OK] Configuration secure",
|
|
305
|
+
"checks": {}
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
# Check common config files for issues
|
|
309
|
+
config_issues = [
|
|
310
|
+
(r'"DEBUG"\s*:\s*true', "Debug mode enabled", "high"),
|
|
311
|
+
(r'debug\s*=\s*True', "Debug mode enabled", "high"),
|
|
312
|
+
(r'NODE_ENV.*development', "Development mode in config", "medium"),
|
|
313
|
+
(r'"CORS_ALLOW_ALL".*true', "CORS allow all origins", "high"),
|
|
314
|
+
(r'"Access-Control-Allow-Origin".*\*', "CORS wildcard", "high"),
|
|
315
|
+
(r'allowCredentials.*true.*origin.*\*', "Dangerous CORS combo", "critical"),
|
|
316
|
+
]
|
|
317
|
+
|
|
318
|
+
for root, dirs, files in os.walk(project_path):
|
|
319
|
+
dirs[:] = [d for d in dirs if d not in SKIP_DIRS]
|
|
320
|
+
|
|
321
|
+
for file in files:
|
|
322
|
+
ext = Path(file).suffix.lower()
|
|
323
|
+
if ext not in CONFIG_EXTENSIONS and file not in ['next.config.js', 'webpack.config.js', '.eslintrc.js']:
|
|
324
|
+
continue
|
|
325
|
+
|
|
326
|
+
filepath = Path(root) / file
|
|
327
|
+
|
|
328
|
+
try:
|
|
329
|
+
with open(filepath, 'r', encoding='utf-8', errors='ignore') as f:
|
|
330
|
+
content = f.read()
|
|
331
|
+
|
|
332
|
+
for pattern, issue, severity in config_issues:
|
|
333
|
+
if re.search(pattern, content, re.IGNORECASE):
|
|
334
|
+
results["findings"].append({
|
|
335
|
+
"file": str(filepath.relative_to(project_path)),
|
|
336
|
+
"issue": issue,
|
|
337
|
+
"severity": severity
|
|
338
|
+
})
|
|
339
|
+
|
|
340
|
+
except Exception:
|
|
341
|
+
pass
|
|
342
|
+
|
|
343
|
+
# Check for security header configurations
|
|
344
|
+
header_files = ["next.config.js", "next.config.mjs", "middleware.ts", "nginx.conf"]
|
|
345
|
+
for hf in header_files:
|
|
346
|
+
hf_path = Path(project_path) / hf
|
|
347
|
+
if hf_path.exists():
|
|
348
|
+
results["checks"]["security_headers_config"] = True
|
|
349
|
+
break
|
|
350
|
+
else:
|
|
351
|
+
results["checks"]["security_headers_config"] = False
|
|
352
|
+
results["findings"].append({
|
|
353
|
+
"issue": "No security headers configuration found",
|
|
354
|
+
"severity": "medium",
|
|
355
|
+
"recommendation": "Configure CSP, HSTS, X-Frame-Options headers"
|
|
356
|
+
})
|
|
357
|
+
|
|
358
|
+
if any(f["severity"] == "critical" for f in results["findings"]):
|
|
359
|
+
results["status"] = "[!!] CRITICAL: Configuration issues"
|
|
360
|
+
elif any(f["severity"] == "high" for f in results["findings"]):
|
|
361
|
+
results["status"] = "[!] HIGH: Configuration review needed"
|
|
362
|
+
elif results["findings"]:
|
|
363
|
+
results["status"] = "[?] Minor configuration issues"
|
|
364
|
+
|
|
365
|
+
return results
|
|
366
|
+
|
|
367
|
+
|
|
368
|
+
# ============================================================================
|
|
369
|
+
# MAIN
|
|
370
|
+
# ============================================================================
|
|
371
|
+
|
|
372
|
+
def run_full_scan(project_path: str, scan_type: str = "all") -> Dict[str, Any]:
|
|
373
|
+
"""Execute security validation scans."""
|
|
374
|
+
|
|
375
|
+
report = {
|
|
376
|
+
"project": project_path,
|
|
377
|
+
"timestamp": datetime.now().isoformat(),
|
|
378
|
+
"scan_type": scan_type,
|
|
379
|
+
"scans": {},
|
|
380
|
+
"summary": {
|
|
381
|
+
"total_findings": 0,
|
|
382
|
+
"critical": 0,
|
|
383
|
+
"high": 0,
|
|
384
|
+
"overall_status": "[OK] SECURE"
|
|
385
|
+
}
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
scanners = {
|
|
389
|
+
"deps": ("dependencies", scan_dependencies),
|
|
390
|
+
"secrets": ("secrets", scan_secrets),
|
|
391
|
+
"patterns": ("code_patterns", scan_code_patterns),
|
|
392
|
+
"config": ("configuration", scan_configuration),
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
for key, (name, scanner) in scanners.items():
|
|
396
|
+
if scan_type == "all" or scan_type == key:
|
|
397
|
+
result = scanner(project_path)
|
|
398
|
+
report["scans"][name] = result
|
|
399
|
+
|
|
400
|
+
findings_count = len(result.get("findings", []))
|
|
401
|
+
report["summary"]["total_findings"] += findings_count
|
|
402
|
+
|
|
403
|
+
for finding in result.get("findings", []):
|
|
404
|
+
sev = finding.get("severity", "low")
|
|
405
|
+
if sev == "critical":
|
|
406
|
+
report["summary"]["critical"] += 1
|
|
407
|
+
elif sev == "high":
|
|
408
|
+
report["summary"]["high"] += 1
|
|
409
|
+
|
|
410
|
+
# Determine overall status
|
|
411
|
+
if report["summary"]["critical"] > 0:
|
|
412
|
+
report["summary"]["overall_status"] = "[!!] CRITICAL ISSUES FOUND"
|
|
413
|
+
elif report["summary"]["high"] > 0:
|
|
414
|
+
report["summary"]["overall_status"] = "[!] HIGH RISK ISSUES"
|
|
415
|
+
elif report["summary"]["total_findings"] > 0:
|
|
416
|
+
report["summary"]["overall_status"] = "[?] REVIEW RECOMMENDED"
|
|
417
|
+
|
|
418
|
+
return report
|
|
419
|
+
|
|
420
|
+
|
|
421
|
+
def main():
|
|
422
|
+
parser = argparse.ArgumentParser(
|
|
423
|
+
description="Validate security principles from vulnerability-scanner skill"
|
|
424
|
+
)
|
|
425
|
+
parser.add_argument("project_path", nargs="?", default=".", help="Project directory to scan")
|
|
426
|
+
parser.add_argument("--scan-type", choices=["all", "deps", "secrets", "patterns", "config"],
|
|
427
|
+
default="all", help="Type of scan to run")
|
|
428
|
+
parser.add_argument("--output", choices=["json", "summary"], default="json",
|
|
429
|
+
help="Output format")
|
|
430
|
+
|
|
431
|
+
args = parser.parse_args()
|
|
432
|
+
|
|
433
|
+
if not os.path.isdir(args.project_path):
|
|
434
|
+
print(json.dumps({"error": f"Directory not found: {args.project_path}"}))
|
|
435
|
+
sys.exit(1)
|
|
436
|
+
|
|
437
|
+
result = run_full_scan(args.project_path, args.scan_type)
|
|
438
|
+
|
|
439
|
+
if args.output == "summary":
|
|
440
|
+
print(f"\n{'='*60}")
|
|
441
|
+
print(f"Security Scan: {result['project']}")
|
|
442
|
+
print(f"{'='*60}")
|
|
443
|
+
print(f"Status: {result['summary']['overall_status']}")
|
|
444
|
+
print(f"Total Findings: {result['summary']['total_findings']}")
|
|
445
|
+
print(f" Critical: {result['summary']['critical']}")
|
|
446
|
+
print(f" High: {result['summary']['high']}")
|
|
447
|
+
print(f"{'='*60}\n")
|
|
448
|
+
|
|
449
|
+
for scan_name, scan_result in result['scans'].items():
|
|
450
|
+
print(f"\n{scan_name.upper()}: {scan_result['status']}")
|
|
451
|
+
for finding in scan_result.get('findings', [])[:5]:
|
|
452
|
+
print(f" - {finding}")
|
|
453
|
+
else:
|
|
454
|
+
print(json.dumps(result, indent=2))
|
|
455
|
+
|
|
456
|
+
|
|
457
|
+
if __name__ == "__main__":
|
|
458
|
+
main()
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: web-design-guidelines
|
|
3
|
+
description: Review UI code for Web Interface Guidelines compliance. Use when asked to "review my UI", "check accessibility", "audit design", "review UX", or "check my site against best practices".
|
|
4
|
+
metadata:
|
|
5
|
+
author: vercel
|
|
6
|
+
version: "1.0.0"
|
|
7
|
+
argument-hint: <file-or-pattern>
|
|
8
|
+
---
|
|
9
|
+
|
|
10
|
+
# Web Interface Guidelines
|
|
11
|
+
|
|
12
|
+
Review files for compliance with Web Interface Guidelines.
|
|
13
|
+
|
|
14
|
+
## How It Works
|
|
15
|
+
|
|
16
|
+
1. Fetch the latest guidelines from the source URL below
|
|
17
|
+
2. Read the specified files (or prompt user for files/pattern)
|
|
18
|
+
3. Check against all rules in the fetched guidelines
|
|
19
|
+
4. Output findings in the terse `file:line` format
|
|
20
|
+
|
|
21
|
+
## Guidelines Source
|
|
22
|
+
|
|
23
|
+
Fetch fresh guidelines before each review:
|
|
24
|
+
|
|
25
|
+
```
|
|
26
|
+
https://raw.githubusercontent.com/vercel-labs/web-interface-guidelines/main/command.md
|
|
27
|
+
```
|
|
28
|
+
|
|
29
|
+
Use WebFetch to retrieve the latest rules. The fetched content contains all the rules and output format instructions.
|
|
30
|
+
|
|
31
|
+
## Usage
|
|
32
|
+
|
|
33
|
+
When a user provides a file or pattern argument:
|
|
34
|
+
1. Fetch guidelines from the source URL above
|
|
35
|
+
2. Read the specified files
|
|
36
|
+
3. Apply all rules from the fetched guidelines
|
|
37
|
+
4. Output findings using the format specified in the guidelines
|
|
38
|
+
|
|
39
|
+
If no files specified, ask the user which files to review.
|
|
40
|
+
|
|
41
|
+
---
|
|
42
|
+
|
|
43
|
+
## Related Skills
|
|
44
|
+
|
|
45
|
+
| Skill | When to Use |
|
|
46
|
+
|-------|-------------|
|
|
47
|
+
| **[frontend-design](../frontend-design/SKILL.md)** | Before coding - Learn design principles (color, typography, UX psychology) |
|
|
48
|
+
| **web-design-guidelines** (this) | After coding - Audit for accessibility, performance, and best practices |
|
|
49
|
+
|
|
50
|
+
## Design Workflow
|
|
51
|
+
|
|
52
|
+
```
|
|
53
|
+
1. DESIGN → Read frontend-design principles
|
|
54
|
+
2. CODE → Implement the design
|
|
55
|
+
3. AUDIT → Run web-design-guidelines review ← YOU ARE HERE
|
|
56
|
+
4. FIX → Address findings from audit
|
|
57
|
+
```
|
|
@@ -0,0 +1,187 @@
|
|
|
1
|
+
---
|
|
2
|
+
name: webapp-testing
|
|
3
|
+
description: Web application testing principles. E2E, Playwright, deep audit strategies.
|
|
4
|
+
allowed-tools: Read, Write, Edit, Glob, Grep, Bash
|
|
5
|
+
---
|
|
6
|
+
|
|
7
|
+
# Web App Testing
|
|
8
|
+
|
|
9
|
+
> Discover and test everything. Leave no route untested.
|
|
10
|
+
|
|
11
|
+
## 🔧 Runtime Scripts
|
|
12
|
+
|
|
13
|
+
**Execute these for automated browser testing:**
|
|
14
|
+
|
|
15
|
+
| Script | Purpose | Usage |
|
|
16
|
+
|--------|---------|-------|
|
|
17
|
+
| `scripts/playwright_runner.py` | Basic browser test | `python scripts/playwright_runner.py https://example.com` |
|
|
18
|
+
| | With screenshot | `python scripts/playwright_runner.py <url> --screenshot` |
|
|
19
|
+
| | Accessibility check | `python scripts/playwright_runner.py <url> --a11y` |
|
|
20
|
+
|
|
21
|
+
**Requires:** `pip install playwright && playwright install chromium`
|
|
22
|
+
|
|
23
|
+
---
|
|
24
|
+
|
|
25
|
+
## 1. Deep Audit Approach
|
|
26
|
+
|
|
27
|
+
### Discovery First
|
|
28
|
+
|
|
29
|
+
| Target | How to Find |
|
|
30
|
+
|--------|-------------|
|
|
31
|
+
| Routes | Scan app/, pages/, router files |
|
|
32
|
+
| API endpoints | Grep for HTTP methods |
|
|
33
|
+
| Components | Find component directories |
|
|
34
|
+
| Features | Read documentation |
|
|
35
|
+
|
|
36
|
+
### Systematic Testing
|
|
37
|
+
|
|
38
|
+
1. **Map** - List all routes/APIs
|
|
39
|
+
2. **Scan** - Verify they respond
|
|
40
|
+
3. **Test** - Cover critical paths
|
|
41
|
+
|
|
42
|
+
---
|
|
43
|
+
|
|
44
|
+
## 2. Testing Pyramid for Web
|
|
45
|
+
|
|
46
|
+
```
|
|
47
|
+
/\ E2E (Few)
|
|
48
|
+
/ \ Critical user flows
|
|
49
|
+
/----\
|
|
50
|
+
/ \ Integration (Some)
|
|
51
|
+
/--------\ API, data flow
|
|
52
|
+
/ \
|
|
53
|
+
/------------\ Component (Many)
|
|
54
|
+
Individual UI pieces
|
|
55
|
+
```
|
|
56
|
+
|
|
57
|
+
---
|
|
58
|
+
|
|
59
|
+
## 3. E2E Test Principles
|
|
60
|
+
|
|
61
|
+
### What to Test
|
|
62
|
+
|
|
63
|
+
| Priority | Tests |
|
|
64
|
+
|----------|-------|
|
|
65
|
+
| 1 | Happy path user flows |
|
|
66
|
+
| 2 | Authentication flows |
|
|
67
|
+
| 3 | Critical business actions |
|
|
68
|
+
| 4 | Error handling |
|
|
69
|
+
|
|
70
|
+
### E2E Best Practices
|
|
71
|
+
|
|
72
|
+
| Practice | Why |
|
|
73
|
+
|----------|-----|
|
|
74
|
+
| Use data-testid | Stable selectors |
|
|
75
|
+
| Wait for elements | Avoid flaky tests |
|
|
76
|
+
| Clean state | Independent tests |
|
|
77
|
+
| Avoid implementation details | Test user behavior |
|
|
78
|
+
|
|
79
|
+
---
|
|
80
|
+
|
|
81
|
+
## 4. Playwright Principles
|
|
82
|
+
|
|
83
|
+
### Core Concepts
|
|
84
|
+
|
|
85
|
+
| Concept | Use |
|
|
86
|
+
|---------|-----|
|
|
87
|
+
| Page Object Model | Encapsulate page logic |
|
|
88
|
+
| Fixtures | Reusable test setup |
|
|
89
|
+
| Assertions | Built-in auto-wait |
|
|
90
|
+
| Trace Viewer | Debug failures |
|
|
91
|
+
|
|
92
|
+
### Configuration
|
|
93
|
+
|
|
94
|
+
| Setting | Recommendation |
|
|
95
|
+
|---------|----------------|
|
|
96
|
+
| Retries | 2 on CI |
|
|
97
|
+
| Trace | on-first-retry |
|
|
98
|
+
| Screenshots | on-failure |
|
|
99
|
+
| Video | retain-on-failure |
|
|
100
|
+
|
|
101
|
+
---
|
|
102
|
+
|
|
103
|
+
## 5. Visual Testing
|
|
104
|
+
|
|
105
|
+
### When to Use
|
|
106
|
+
|
|
107
|
+
| Scenario | Value |
|
|
108
|
+
|----------|-------|
|
|
109
|
+
| Design system | High |
|
|
110
|
+
| Marketing pages | High |
|
|
111
|
+
| Component library | Medium |
|
|
112
|
+
| Dynamic content | Lower |
|
|
113
|
+
|
|
114
|
+
### Strategy
|
|
115
|
+
|
|
116
|
+
- Baseline screenshots
|
|
117
|
+
- Compare on changes
|
|
118
|
+
- Review visual diffs
|
|
119
|
+
- Update intentional changes
|
|
120
|
+
|
|
121
|
+
---
|
|
122
|
+
|
|
123
|
+
## 6. API Testing Principles
|
|
124
|
+
|
|
125
|
+
### Coverage Areas
|
|
126
|
+
|
|
127
|
+
| Area | Tests |
|
|
128
|
+
|------|-------|
|
|
129
|
+
| Status codes | 200, 400, 404, 500 |
|
|
130
|
+
| Response shape | Matches schema |
|
|
131
|
+
| Error messages | User-friendly |
|
|
132
|
+
| Edge cases | Empty, large, special chars |
|
|
133
|
+
|
|
134
|
+
---
|
|
135
|
+
|
|
136
|
+
## 7. Test Organization
|
|
137
|
+
|
|
138
|
+
### File Structure
|
|
139
|
+
|
|
140
|
+
```
|
|
141
|
+
tests/
|
|
142
|
+
├── e2e/ # Full user flows
|
|
143
|
+
├── integration/ # API, data
|
|
144
|
+
├── component/ # UI units
|
|
145
|
+
└── fixtures/ # Shared data
|
|
146
|
+
```
|
|
147
|
+
|
|
148
|
+
### Naming Convention
|
|
149
|
+
|
|
150
|
+
| Pattern | Example |
|
|
151
|
+
|---------|---------|
|
|
152
|
+
| Feature-based | `login.spec.ts` |
|
|
153
|
+
| Descriptive | `user-can-checkout.spec.ts` |
|
|
154
|
+
|
|
155
|
+
---
|
|
156
|
+
|
|
157
|
+
## 8. CI Integration
|
|
158
|
+
|
|
159
|
+
### Pipeline Steps
|
|
160
|
+
|
|
161
|
+
1. Install dependencies
|
|
162
|
+
2. Install browsers
|
|
163
|
+
3. Run tests
|
|
164
|
+
4. Upload artifacts (traces, screenshots)
|
|
165
|
+
|
|
166
|
+
### Parallelization
|
|
167
|
+
|
|
168
|
+
| Strategy | Use |
|
|
169
|
+
|----------|-----|
|
|
170
|
+
| Per file | Playwright default |
|
|
171
|
+
| Sharding | Large suites |
|
|
172
|
+
| Workers | Multiple browsers |
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
## 9. Anti-Patterns
|
|
177
|
+
|
|
178
|
+
| ❌ Don't | ✅ Do |
|
|
179
|
+
|----------|-------|
|
|
180
|
+
| Test implementation | Test behavior |
|
|
181
|
+
| Hardcode waits | Use auto-wait |
|
|
182
|
+
| Skip cleanup | Isolate tests |
|
|
183
|
+
| Ignore flaky tests | Fix root cause |
|
|
184
|
+
|
|
185
|
+
---
|
|
186
|
+
|
|
187
|
+
> **Remember:** E2E tests are expensive. Use them for critical paths only.
|