kodelyth-ecc 2.19.0 → 2.20.0
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/CHANGELOG.md +115 -0
- package/CLAUDE.md +3 -3
- package/VERSION +1 -1
- package/agents/chaos-engineer.md +10 -4
- package/agents/flake-hunter.md +10 -4
- package/agents/gan-evaluator.md +9 -4
- package/agents/git-rescue.md +14 -5
- package/agents/license-violation-finder.md +6 -4
- package/agents/security-reviewer.md +11 -0
- package/commands/jira.md +16 -0
- package/commands/santa-loop.md +4 -1
- package/package.json +33 -3
- package/rules/common/shell-portability.md +47 -0
- package/rules/shell-portability.md +47 -0
- package/scripts/portability/rules.js +106 -0
- package/scripts/portability/scan.js +144 -0
- package/skills/agent-sort/SKILL.md +9 -2
- package/skills/autonomous-loops/SKILL.md +6 -2
- package/skills/configure-ecc/SKILL.md +14 -6
- package/skills/dmux-workflows/SKILL.md +1 -1
- package/skills/openclaw-persona-forge/SKILL.md +1 -1
- package/skills/openclaw-persona-forge/references/avatar-style.md +1 -1
- package/skills/session-replay/SKILL.md +1 -1
- package/skills/videodb/reference/capture.md +17 -7
- package/.agent/rules/README.md +0 -108
- package/.agent/rules/agent-intent-routing.md +0 -832
- package/.agent/rules/agents.md +0 -50
- package/.agent/rules/code-review.md +0 -124
- package/.agent/rules/coding-style.md +0 -41
- package/.agent/rules/cost-aware-model-routing.md +0 -152
- package/.agent/rules/design-quality.md +0 -63
- package/.agent/rules/development-workflow.md +0 -44
- package/.agent/rules/git-mastery.md +0 -366
- package/.agent/rules/git-workflow.md +0 -24
- package/.agent/rules/hooks.md +0 -23
- package/.agent/rules/kodelyth-quickstart.md +0 -214
- package/.agent/rules/memory-protocol.md +0 -87
- package/.agent/rules/observability.md +0 -390
- package/.agent/rules/patterns.md +0 -71
- package/.agent/rules/performance.md +0 -55
- package/.agent/rules/security.md +0 -56
- package/.agent/rules/self-improvement-workflow.md +0 -141
- package/.agent/rules/shell-portability.md +0 -70
- package/.agent/rules/smart-debug.md +0 -241
- package/.agent/rules/testing.md +0 -65
- package/.agent/skills/api-guardian.md +0 -279
- package/.agent/skills/architect.md +0 -211
- package/.agent/skills/backdoor-hunter.md +0 -260
- package/.agent/skills/build-error-resolver.md +0 -114
- package/.agent/skills/chaos-engineer.md +0 -251
- package/.agent/skills/chief-of-staff.md +0 -151
- package/.agent/skills/code-architect.md +0 -71
- package/.agent/skills/code-explorer.md +0 -69
- package/.agent/skills/code-reviewer.md +0 -258
- package/.agent/skills/code-simplifier.md +0 -47
- package/.agent/skills/code-stealer-detector.md +0 -228
- package/.agent/skills/comment-analyzer.md +0 -45
- package/.agent/skills/conversation-analyzer.md +0 -52
- package/.agent/skills/cpp-build-resolver.md +0 -90
- package/.agent/skills/cpp-reviewer.md +0 -72
- package/.agent/skills/csharp-reviewer.md +0 -101
- package/.agent/skills/dart-build-resolver.md +0 -201
- package/.agent/skills/database-reviewer.md +0 -91
- package/.agent/skills/debug-detective.md +0 -410
- package/.agent/skills/dependency-doctor.md +0 -121
- package/.agent/skills/doc-updater.md +0 -107
- package/.agent/skills/docs-lookup.md +0 -68
- package/.agent/skills/e2e-runner.md +0 -107
- package/.agent/skills/env-debugger.md +0 -154
- package/.agent/skills/flake-hunter.md +0 -142
- package/.agent/skills/flutter-reviewer.md +0 -243
- package/.agent/skills/gan-evaluator.md +0 -209
- package/.agent/skills/gan-generator.md +0 -131
- package/.agent/skills/gan-planner.md +0 -99
- package/.agent/skills/git-rescue.md +0 -133
- package/.agent/skills/go-build-resolver.md +0 -94
- package/.agent/skills/go-reviewer.md +0 -76
- package/.agent/skills/harness-optimizer.md +0 -35
- package/.agent/skills/healthcare-reviewer.md +0 -83
- package/.agent/skills/image-architect.md +0 -190
- package/.agent/skills/incident-commander.md +0 -228
- package/.agent/skills/jailbreak-tester.md +0 -222
- package/.agent/skills/java-build-resolver.md +0 -153
- package/.agent/skills/java-reviewer.md +0 -92
- package/.agent/skills/kodelyth-advisor.md +0 -172
- package/.agent/skills/kodelyth-memory.md +0 -87
- package/.agent/skills/kotlin-build-resolver.md +0 -118
- package/.agent/skills/kotlin-reviewer.md +0 -159
- package/.agent/skills/license-violation-finder.md +0 -212
- package/.agent/skills/load-tester.md +0 -284
- package/.agent/skills/loop-operator.md +0 -36
- package/.agent/skills/migration-guide.md +0 -369
- package/.agent/skills/opensource-forker.md +0 -198
- package/.agent/skills/opensource-packager.md +0 -249
- package/.agent/skills/opensource-sanitizer.md +0 -188
- package/.agent/skills/pair-programmer.md +0 -261
- package/.agent/skills/performance-optimizer.md +0 -446
- package/.agent/skills/planner.md +0 -212
- package/.agent/skills/pr-test-analyzer.md +0 -45
- package/.agent/skills/prompt-injection-hunter.md +0 -126
- package/.agent/skills/python-reviewer.md +0 -98
- package/.agent/skills/pytorch-build-resolver.md +0 -120
- package/.agent/skills/refactor-cleaner.md +0 -85
- package/.agent/skills/release-captain.md +0 -226
- package/.agent/skills/rust-build-resolver.md +0 -148
- package/.agent/skills/rust-reviewer.md +0 -94
- package/.agent/skills/secret-hunter.md +0 -209
- package/.agent/skills/security-reviewer.md +0 -166
- package/.agent/skills/seo-specialist.md +0 -62
- package/.agent/skills/silent-failure-hunter.md +0 -50
- package/.agent/skills/supply-chain-auditor.md +0 -195
- package/.agent/skills/tdd-guide.md +0 -91
- package/.agent/skills/type-design-analyzer.md +0 -41
- package/.agent/skills/typescript-reviewer.md +0 -112
- package/.agent/skills/ux-reviewer.md +0 -483
- package/.agent/workflows/agent-sort.md +0 -23
- package/.agent/workflows/arena.md +0 -136
- package/.agent/workflows/aside.md +0 -164
- package/.agent/workflows/build-fix.md +0 -66
- package/.agent/workflows/checkpoint.md +0 -79
- package/.agent/workflows/claw.md +0 -23
- package/.agent/workflows/code-review.md +0 -289
- package/.agent/workflows/context-budget.md +0 -23
- package/.agent/workflows/cpp-build.md +0 -173
- package/.agent/workflows/cpp-review.md +0 -132
- package/.agent/workflows/cpp-test.md +0 -251
- package/.agent/workflows/dashboard.md +0 -67
- package/.agent/workflows/debug-blitz.md +0 -70
- package/.agent/workflows/devfleet.md +0 -23
- package/.agent/workflows/devil-mode.md +0 -121
- package/.agent/workflows/docs.md +0 -23
- package/.agent/workflows/doctor.md +0 -75
- package/.agent/workflows/e2e.md +0 -268
- package/.agent/workflows/eval.md +0 -23
- package/.agent/workflows/evil-mode.md +0 -106
- package/.agent/workflows/evolve.md +0 -178
- package/.agent/workflows/feature-dev.md +0 -49
- package/.agent/workflows/flutter-build.md +0 -164
- package/.agent/workflows/flutter-review.md +0 -116
- package/.agent/workflows/flutter-test.md +0 -144
- package/.agent/workflows/gan-build.md +0 -104
- package/.agent/workflows/gan-design.md +0 -40
- package/.agent/workflows/go-build.md +0 -183
- package/.agent/workflows/go-review.md +0 -148
- package/.agent/workflows/go-test.md +0 -268
- package/.agent/workflows/god-mode.md +0 -85
- package/.agent/workflows/gradle-build.md +0 -70
- package/.agent/workflows/harness-audit.md +0 -77
- package/.agent/workflows/hookify-configure.md +0 -14
- package/.agent/workflows/hookify-help.md +0 -46
- package/.agent/workflows/hookify-list.md +0 -21
- package/.agent/workflows/hookify.md +0 -50
- package/.agent/workflows/immune.md +0 -89
- package/.agent/workflows/instinct-export.md +0 -66
- package/.agent/workflows/instinct-import.md +0 -114
- package/.agent/workflows/instinct-status.md +0 -59
- package/.agent/workflows/jira.md +0 -106
- package/.agent/workflows/kotlin-build.md +0 -174
- package/.agent/workflows/kotlin-review.md +0 -140
- package/.agent/workflows/kotlin-test.md +0 -312
- package/.agent/workflows/learn-eval.md +0 -116
- package/.agent/workflows/learn.md +0 -74
- package/.agent/workflows/lessons.md +0 -92
- package/.agent/workflows/loop-start.md +0 -37
- package/.agent/workflows/loop-status.md +0 -28
- package/.agent/workflows/memory-evolve.md +0 -71
- package/.agent/workflows/memory.md +0 -62
- package/.agent/workflows/model-route.md +0 -31
- package/.agent/workflows/multi-backend.md +0 -163
- package/.agent/workflows/multi-execute.md +0 -320
- package/.agent/workflows/multi-frontend.md +0 -163
- package/.agent/workflows/multi-plan.md +0 -273
- package/.agent/workflows/multi-workflow.md +0 -196
- package/.agent/workflows/onboard.md +0 -72
- package/.agent/workflows/orchestrate.md +0 -135
- package/.agent/workflows/plan.md +0 -117
- package/.agent/workflows/pm2.md +0 -277
- package/.agent/workflows/pre-release.md +0 -66
- package/.agent/workflows/project-launch.md +0 -91
- package/.agent/workflows/projects.md +0 -39
- package/.agent/workflows/promote.md +0 -41
- package/.agent/workflows/prompt-optimize.md +0 -23
- package/.agent/workflows/prp-commit.md +0 -112
- package/.agent/workflows/prp-implement.md +0 -385
- package/.agent/workflows/prp-plan.md +0 -502
- package/.agent/workflows/prp-pr.md +0 -184
- package/.agent/workflows/prp-prd.md +0 -447
- package/.agent/workflows/prune.md +0 -31
- package/.agent/workflows/python-review.md +0 -297
- package/.agent/workflows/quality-gate.md +0 -33
- package/.agent/workflows/refactor-clean.md +0 -84
- package/.agent/workflows/refactor-sprint.md +0 -77
- package/.agent/workflows/replay.md +0 -61
- package/.agent/workflows/resume-session.md +0 -156
- package/.agent/workflows/review-pr.md +0 -37
- package/.agent/workflows/route-model.md +0 -48
- package/.agent/workflows/rules-distill.md +0 -20
- package/.agent/workflows/rust-build.md +0 -187
- package/.agent/workflows/rust-review.md +0 -142
- package/.agent/workflows/rust-test.md +0 -308
- package/.agent/workflows/santa-loop.md +0 -175
- package/.agent/workflows/save-session.md +0 -275
- package/.agent/workflows/security-audit.md +0 -66
- package/.agent/workflows/sessions.md +0 -333
- package/.agent/workflows/setup-pm.md +0 -80
- package/.agent/workflows/skill-create.md +0 -174
- package/.agent/workflows/skill-health.md +0 -54
- package/.agent/workflows/swarm.md +0 -68
- package/.agent/workflows/tdd.md +0 -231
- package/.agent/workflows/team-review.md +0 -107
- package/.agent/workflows/terse-compress.md +0 -78
- package/.agent/workflows/terse.md +0 -40
- package/.agent/workflows/test-coverage.md +0 -73
- package/.agent/workflows/update-codemaps.md +0 -76
- package/.agent/workflows/update-docs.md +0 -88
- package/.agent/workflows/update.md +0 -92
- package/.agent/workflows/verify-supply-chain.md +0 -59
- package/.agent/workflows/verify.md +0 -23
- package/.agents/rules/antigravity-rtk-rules.md +0 -32
- package/.aider-ecc/agents/api-guardian.md +0 -279
- package/.aider-ecc/agents/architect.md +0 -211
- package/.aider-ecc/agents/backdoor-hunter.md +0 -260
- package/.aider-ecc/agents/build-error-resolver.md +0 -114
- package/.aider-ecc/agents/chaos-engineer.md +0 -251
- package/.aider-ecc/agents/chief-of-staff.md +0 -151
- package/.aider-ecc/agents/code-architect.md +0 -71
- package/.aider-ecc/agents/code-explorer.md +0 -69
- package/.aider-ecc/agents/code-reviewer.md +0 -258
- package/.aider-ecc/agents/code-simplifier.md +0 -47
- package/.aider-ecc/agents/code-stealer-detector.md +0 -228
- package/.aider-ecc/agents/comment-analyzer.md +0 -45
- package/.aider-ecc/agents/conversation-analyzer.md +0 -52
- package/.aider-ecc/agents/cpp-build-resolver.md +0 -90
- package/.aider-ecc/agents/cpp-reviewer.md +0 -72
- package/.aider-ecc/agents/csharp-reviewer.md +0 -101
- package/.aider-ecc/agents/dart-build-resolver.md +0 -201
- package/.aider-ecc/agents/database-reviewer.md +0 -91
- package/.aider-ecc/agents/debug-detective.md +0 -410
- package/.aider-ecc/agents/dependency-doctor.md +0 -121
- package/.aider-ecc/agents/doc-updater.md +0 -107
- package/.aider-ecc/agents/docs-lookup.md +0 -68
- package/.aider-ecc/agents/e2e-runner.md +0 -107
- package/.aider-ecc/agents/env-debugger.md +0 -154
- package/.aider-ecc/agents/flake-hunter.md +0 -142
- package/.aider-ecc/agents/flutter-reviewer.md +0 -243
- package/.aider-ecc/agents/gan-evaluator.md +0 -209
- package/.aider-ecc/agents/gan-generator.md +0 -131
- package/.aider-ecc/agents/gan-planner.md +0 -99
- package/.aider-ecc/agents/git-rescue.md +0 -133
- package/.aider-ecc/agents/go-build-resolver.md +0 -94
- package/.aider-ecc/agents/go-reviewer.md +0 -76
- package/.aider-ecc/agents/harness-optimizer.md +0 -35
- package/.aider-ecc/agents/healthcare-reviewer.md +0 -83
- package/.aider-ecc/agents/image-architect.md +0 -190
- package/.aider-ecc/agents/incident-commander.md +0 -228
- package/.aider-ecc/agents/jailbreak-tester.md +0 -222
- package/.aider-ecc/agents/java-build-resolver.md +0 -153
- package/.aider-ecc/agents/java-reviewer.md +0 -92
- package/.aider-ecc/agents/kodelyth-advisor.md +0 -172
- package/.aider-ecc/agents/kodelyth-memory.md +0 -87
- package/.aider-ecc/agents/kotlin-build-resolver.md +0 -118
- package/.aider-ecc/agents/kotlin-reviewer.md +0 -159
- package/.aider-ecc/agents/license-violation-finder.md +0 -212
- package/.aider-ecc/agents/load-tester.md +0 -284
- package/.aider-ecc/agents/loop-operator.md +0 -36
- package/.aider-ecc/agents/migration-guide.md +0 -369
- package/.aider-ecc/agents/opensource-forker.md +0 -198
- package/.aider-ecc/agents/opensource-packager.md +0 -249
- package/.aider-ecc/agents/opensource-sanitizer.md +0 -188
- package/.aider-ecc/agents/pair-programmer.md +0 -261
- package/.aider-ecc/agents/performance-optimizer.md +0 -446
- package/.aider-ecc/agents/planner.md +0 -212
- package/.aider-ecc/agents/pr-test-analyzer.md +0 -45
- package/.aider-ecc/agents/prompt-injection-hunter.md +0 -126
- package/.aider-ecc/agents/python-reviewer.md +0 -98
- package/.aider-ecc/agents/pytorch-build-resolver.md +0 -120
- package/.aider-ecc/agents/refactor-cleaner.md +0 -85
- package/.aider-ecc/agents/release-captain.md +0 -226
- package/.aider-ecc/agents/rust-build-resolver.md +0 -148
- package/.aider-ecc/agents/rust-reviewer.md +0 -94
- package/.aider-ecc/agents/secret-hunter.md +0 -209
- package/.aider-ecc/agents/security-reviewer.md +0 -166
- package/.aider-ecc/agents/seo-specialist.md +0 -62
- package/.aider-ecc/agents/silent-failure-hunter.md +0 -50
- package/.aider-ecc/agents/supply-chain-auditor.md +0 -195
- package/.aider-ecc/agents/tdd-guide.md +0 -91
- package/.aider-ecc/agents/type-design-analyzer.md +0 -41
- package/.aider-ecc/agents/typescript-reviewer.md +0 -112
- package/.aider-ecc/agents/ux-reviewer.md +0 -483
- package/.aider-ecc/commands/agent-sort.md +0 -23
- package/.aider-ecc/commands/arena.md +0 -136
- package/.aider-ecc/commands/aside.md +0 -164
- package/.aider-ecc/commands/build-fix.md +0 -66
- package/.aider-ecc/commands/checkpoint.md +0 -79
- package/.aider-ecc/commands/claw.md +0 -23
- package/.aider-ecc/commands/code-review.md +0 -289
- package/.aider-ecc/commands/context-budget.md +0 -23
- package/.aider-ecc/commands/cpp-build.md +0 -173
- package/.aider-ecc/commands/cpp-review.md +0 -132
- package/.aider-ecc/commands/cpp-test.md +0 -251
- package/.aider-ecc/commands/dashboard.md +0 -67
- package/.aider-ecc/commands/debug-blitz.md +0 -70
- package/.aider-ecc/commands/devfleet.md +0 -23
- package/.aider-ecc/commands/devil-mode.md +0 -121
- package/.aider-ecc/commands/docs.md +0 -23
- package/.aider-ecc/commands/doctor.md +0 -75
- package/.aider-ecc/commands/e2e.md +0 -268
- package/.aider-ecc/commands/eval.md +0 -23
- package/.aider-ecc/commands/evil-mode.md +0 -106
- package/.aider-ecc/commands/evolve.md +0 -178
- package/.aider-ecc/commands/feature-dev.md +0 -49
- package/.aider-ecc/commands/flutter-build.md +0 -164
- package/.aider-ecc/commands/flutter-review.md +0 -116
- package/.aider-ecc/commands/flutter-test.md +0 -144
- package/.aider-ecc/commands/gan-build.md +0 -104
- package/.aider-ecc/commands/gan-design.md +0 -40
- package/.aider-ecc/commands/go-build.md +0 -183
- package/.aider-ecc/commands/go-review.md +0 -148
- package/.aider-ecc/commands/go-test.md +0 -268
- package/.aider-ecc/commands/god-mode.md +0 -85
- package/.aider-ecc/commands/gradle-build.md +0 -70
- package/.aider-ecc/commands/harness-audit.md +0 -77
- package/.aider-ecc/commands/hookify-configure.md +0 -14
- package/.aider-ecc/commands/hookify-help.md +0 -46
- package/.aider-ecc/commands/hookify-list.md +0 -21
- package/.aider-ecc/commands/hookify.md +0 -50
- package/.aider-ecc/commands/immune.md +0 -89
- package/.aider-ecc/commands/instinct-export.md +0 -66
- package/.aider-ecc/commands/instinct-import.md +0 -114
- package/.aider-ecc/commands/instinct-status.md +0 -59
- package/.aider-ecc/commands/jira.md +0 -106
- package/.aider-ecc/commands/kotlin-build.md +0 -174
- package/.aider-ecc/commands/kotlin-review.md +0 -140
- package/.aider-ecc/commands/kotlin-test.md +0 -312
- package/.aider-ecc/commands/learn-eval.md +0 -116
- package/.aider-ecc/commands/learn.md +0 -74
- package/.aider-ecc/commands/lessons.md +0 -92
- package/.aider-ecc/commands/loop-start.md +0 -37
- package/.aider-ecc/commands/loop-status.md +0 -28
- package/.aider-ecc/commands/memory-evolve.md +0 -71
- package/.aider-ecc/commands/memory.md +0 -62
- package/.aider-ecc/commands/model-route.md +0 -31
- package/.aider-ecc/commands/multi-backend.md +0 -163
- package/.aider-ecc/commands/multi-execute.md +0 -320
- package/.aider-ecc/commands/multi-frontend.md +0 -163
- package/.aider-ecc/commands/multi-plan.md +0 -273
- package/.aider-ecc/commands/multi-workflow.md +0 -196
- package/.aider-ecc/commands/onboard.md +0 -72
- package/.aider-ecc/commands/orchestrate.md +0 -135
- package/.aider-ecc/commands/plan.md +0 -117
- package/.aider-ecc/commands/pm2.md +0 -277
- package/.aider-ecc/commands/pre-release.md +0 -66
- package/.aider-ecc/commands/project-launch.md +0 -91
- package/.aider-ecc/commands/projects.md +0 -39
- package/.aider-ecc/commands/promote.md +0 -41
- package/.aider-ecc/commands/prompt-optimize.md +0 -23
- package/.aider-ecc/commands/prp-commit.md +0 -112
- package/.aider-ecc/commands/prp-implement.md +0 -385
- package/.aider-ecc/commands/prp-plan.md +0 -502
- package/.aider-ecc/commands/prp-pr.md +0 -184
- package/.aider-ecc/commands/prp-prd.md +0 -447
- package/.aider-ecc/commands/prune.md +0 -31
- package/.aider-ecc/commands/python-review.md +0 -297
- package/.aider-ecc/commands/quality-gate.md +0 -33
- package/.aider-ecc/commands/refactor-clean.md +0 -84
- package/.aider-ecc/commands/refactor-sprint.md +0 -77
- package/.aider-ecc/commands/replay.md +0 -61
- package/.aider-ecc/commands/resume-session.md +0 -156
- package/.aider-ecc/commands/review-pr.md +0 -37
- package/.aider-ecc/commands/route-model.md +0 -48
- package/.aider-ecc/commands/rules-distill.md +0 -20
- package/.aider-ecc/commands/rust-build.md +0 -187
- package/.aider-ecc/commands/rust-review.md +0 -142
- package/.aider-ecc/commands/rust-test.md +0 -308
- package/.aider-ecc/commands/santa-loop.md +0 -175
- package/.aider-ecc/commands/save-session.md +0 -275
- package/.aider-ecc/commands/security-audit.md +0 -66
- package/.aider-ecc/commands/sessions.md +0 -333
- package/.aider-ecc/commands/setup-pm.md +0 -80
- package/.aider-ecc/commands/skill-create.md +0 -174
- package/.aider-ecc/commands/skill-health.md +0 -54
- package/.aider-ecc/commands/swarm.md +0 -68
- package/.aider-ecc/commands/tdd.md +0 -231
- package/.aider-ecc/commands/team-review.md +0 -107
- package/.aider-ecc/commands/terse-compress.md +0 -78
- package/.aider-ecc/commands/terse.md +0 -40
- package/.aider-ecc/commands/test-coverage.md +0 -73
- package/.aider-ecc/commands/update-codemaps.md +0 -76
- package/.aider-ecc/commands/update-docs.md +0 -88
- package/.aider-ecc/commands/update.md +0 -92
- package/.aider-ecc/commands/verify-supply-chain.md +0 -59
- package/.aider-ecc/commands/verify.md +0 -23
- package/.aider-ecc/rules/README.md +0 -108
- package/.aider-ecc/rules/agent-intent-routing.md +0 -832
- package/.aider-ecc/rules/agents.md +0 -50
- package/.aider-ecc/rules/code-review.md +0 -124
- package/.aider-ecc/rules/coding-style.md +0 -41
- package/.aider-ecc/rules/cost-aware-model-routing.md +0 -152
- package/.aider-ecc/rules/design-quality.md +0 -63
- package/.aider-ecc/rules/development-workflow.md +0 -44
- package/.aider-ecc/rules/git-workflow.md +0 -24
- package/.aider-ecc/rules/hooks.md +0 -23
- package/.aider-ecc/rules/memory-protocol.md +0 -87
- package/.aider-ecc/rules/patterns.md +0 -71
- package/.aider-ecc/rules/performance.md +0 -55
- package/.aider-ecc/rules/security.md +0 -56
- package/.aider-ecc/rules/self-improvement-workflow.md +0 -141
- package/.aider-ecc/rules/shell-portability.md +0 -70
- package/.aider-ecc/rules/testing.md +0 -65
- package/.aider-ecc/skills/agent-eval/SKILL.md +0 -145
- package/.aider-ecc/skills/agent-handoff/SKILL.md +0 -184
- package/.aider-ecc/skills/agent-harness-construction/SKILL.md +0 -73
- package/.aider-ecc/skills/agent-introspection-debugging/SKILL.md +0 -153
- package/.aider-ecc/skills/agent-payment-x402/SKILL.md +0 -178
- package/.aider-ecc/skills/agent-sort/SKILL.md +0 -215
- package/.aider-ecc/skills/agentic-engineering/SKILL.md +0 -63
- package/.aider-ecc/skills/ai-first-engineering/SKILL.md +0 -51
- package/.aider-ecc/skills/ai-regression-testing/SKILL.md +0 -385
- package/.aider-ecc/skills/android-clean-architecture/SKILL.md +0 -339
- package/.aider-ecc/skills/api-connector-builder/SKILL.md +0 -121
- package/.aider-ecc/skills/api-design/SKILL.md +0 -523
- package/.aider-ecc/skills/architecture-decision-records/SKILL.md +0 -179
- package/.aider-ecc/skills/article-writing/SKILL.md +0 -79
- package/.aider-ecc/skills/automation-audit-ops/SKILL.md +0 -142
- package/.aider-ecc/skills/autonomous-agent-harness/SKILL.md +0 -267
- package/.aider-ecc/skills/autonomous-loops/SKILL.md +0 -610
- package/.aider-ecc/skills/backend-patterns/SKILL.md +0 -598
- package/.aider-ecc/skills/benchmark/SKILL.md +0 -93
- package/.aider-ecc/skills/blueprint/SKILL.md +0 -105
- package/.aider-ecc/skills/brand-voice/SKILL.md +0 -97
- package/.aider-ecc/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/.aider-ecc/skills/browser-qa/SKILL.md +0 -87
- package/.aider-ecc/skills/bun-runtime/SKILL.md +0 -84
- package/.aider-ecc/skills/canary-watch/SKILL.md +0 -99
- package/.aider-ecc/skills/carrier-relationship-management/SKILL.md +0 -212
- package/.aider-ecc/skills/ck/SKILL.md +0 -147
- package/.aider-ecc/skills/ck/commands/forget.mjs +0 -44
- package/.aider-ecc/skills/ck/commands/info.mjs +0 -24
- package/.aider-ecc/skills/ck/commands/init.mjs +0 -143
- package/.aider-ecc/skills/ck/commands/list.mjs +0 -40
- package/.aider-ecc/skills/ck/commands/migrate.mjs +0 -202
- package/.aider-ecc/skills/ck/commands/resume.mjs +0 -36
- package/.aider-ecc/skills/ck/commands/save.mjs +0 -210
- package/.aider-ecc/skills/ck/commands/shared.mjs +0 -387
- package/.aider-ecc/skills/ck/hooks/session-start.mjs +0 -224
- package/.aider-ecc/skills/claude-api/SKILL.md +0 -337
- package/.aider-ecc/skills/claude-devfleet/SKILL.md +0 -103
- package/.aider-ecc/skills/click-path-audit/SKILL.md +0 -244
- package/.aider-ecc/skills/clickhouse-io/SKILL.md +0 -439
- package/.aider-ecc/skills/code-tour/SKILL.md +0 -236
- package/.aider-ecc/skills/codebase-onboarding/SKILL.md +0 -233
- package/.aider-ecc/skills/coding-standards/SKILL.md +0 -549
- package/.aider-ecc/skills/compose-multiplatform-patterns/SKILL.md +0 -299
- package/.aider-ecc/skills/configure-ecc/SKILL.md +0 -367
- package/.aider-ecc/skills/connections-optimizer/SKILL.md +0 -189
- package/.aider-ecc/skills/content-engine/SKILL.md +0 -131
- package/.aider-ecc/skills/content-hash-cache-pattern/SKILL.md +0 -161
- package/.aider-ecc/skills/context-budget/SKILL.md +0 -135
- package/.aider-ecc/skills/continuous-agent-loop/SKILL.md +0 -45
- package/.aider-ecc/skills/continuous-learning/SKILL.md +0 -123
- package/.aider-ecc/skills/continuous-learning/config.json +0 -18
- package/.aider-ecc/skills/continuous-learning/evaluate-session.sh +0 -69
- package/.aider-ecc/skills/continuous-learning-v2/SKILL.md +0 -365
- package/.aider-ecc/skills/continuous-learning-v2/agents/observer-loop.sh +0 -271
- package/.aider-ecc/skills/continuous-learning-v2/agents/observer.md +0 -198
- package/.aider-ecc/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/.aider-ecc/skills/continuous-learning-v2/agents/start-observer.sh +0 -244
- package/.aider-ecc/skills/continuous-learning-v2/config.json +0 -8
- package/.aider-ecc/skills/continuous-learning-v2/hooks/observe.sh +0 -428
- package/.aider-ecc/skills/continuous-learning-v2/scripts/detect-project.sh +0 -228
- package/.aider-ecc/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1426
- package/.aider-ecc/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -984
- package/.aider-ecc/skills/cost-aware-llm-pipeline/SKILL.md +0 -183
- package/.aider-ecc/skills/cost-aware-model-routing/SKILL.md +0 -153
- package/.aider-ecc/skills/council/SKILL.md +0 -203
- package/.aider-ecc/skills/cpp-coding-standards/SKILL.md +0 -723
- package/.aider-ecc/skills/cpp-testing/SKILL.md +0 -324
- package/.aider-ecc/skills/crosspost/SKILL.md +0 -111
- package/.aider-ecc/skills/csharp-testing/SKILL.md +0 -321
- package/.aider-ecc/skills/customer-billing-ops/SKILL.md +0 -140
- package/.aider-ecc/skills/customs-trade-compliance/SKILL.md +0 -263
- package/.aider-ecc/skills/dart-flutter-patterns/SKILL.md +0 -563
- package/.aider-ecc/skills/dashboard-builder/SKILL.md +0 -109
- package/.aider-ecc/skills/data-scraper-agent/SKILL.md +0 -764
- package/.aider-ecc/skills/database-migrations/SKILL.md +0 -429
- package/.aider-ecc/skills/deep-research/SKILL.md +0 -155
- package/.aider-ecc/skills/defi-amm-security/SKILL.md +0 -160
- package/.aider-ecc/skills/deployment-patterns/SKILL.md +0 -427
- package/.aider-ecc/skills/design-system/SKILL.md +0 -82
- package/.aider-ecc/skills/django-patterns/SKILL.md +0 -734
- package/.aider-ecc/skills/django-security/SKILL.md +0 -593
- package/.aider-ecc/skills/django-tdd/SKILL.md +0 -729
- package/.aider-ecc/skills/django-verification/SKILL.md +0 -469
- package/.aider-ecc/skills/dmux-workflows/SKILL.md +0 -191
- package/.aider-ecc/skills/docker-patterns/SKILL.md +0 -364
- package/.aider-ecc/skills/documentation-lookup/SKILL.md +0 -90
- package/.aider-ecc/skills/dotnet-patterns/SKILL.md +0 -321
- package/.aider-ecc/skills/e2e-testing/SKILL.md +0 -326
- package/.aider-ecc/skills/ecc-token-savings/SKILL.md +0 -106
- package/.aider-ecc/skills/ecc-tools-cost-audit/SKILL.md +0 -160
- package/.aider-ecc/skills/email-ops/SKILL.md +0 -121
- package/.aider-ecc/skills/energy-procurement/SKILL.md +0 -228
- package/.aider-ecc/skills/enterprise-agent-ops/SKILL.md +0 -50
- package/.aider-ecc/skills/eval-harness/SKILL.md +0 -270
- package/.aider-ecc/skills/evm-token-decimals/SKILL.md +0 -130
- package/.aider-ecc/skills/exa-search/SKILL.md +0 -103
- package/.aider-ecc/skills/fal-ai-media/SKILL.md +0 -284
- package/.aider-ecc/skills/finance-billing-ops/SKILL.md +0 -127
- package/.aider-ecc/skills/flutter-dart-code-review/SKILL.md +0 -435
- package/.aider-ecc/skills/foundation-models-on-device/SKILL.md +0 -243
- package/.aider-ecc/skills/frontend-design/SKILL.md +0 -145
- package/.aider-ecc/skills/frontend-patterns/SKILL.md +0 -642
- package/.aider-ecc/skills/frontend-slides/SKILL.md +0 -184
- package/.aider-ecc/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.aider-ecc/skills/gan-style-harness/SKILL.md +0 -278
- package/.aider-ecc/skills/git-mastery/SKILL.md +0 -366
- package/.aider-ecc/skills/git-workflow/SKILL.md +0 -715
- package/.aider-ecc/skills/github-ops/SKILL.md +0 -144
- package/.aider-ecc/skills/golang-patterns/SKILL.md +0 -674
- package/.aider-ecc/skills/golang-testing/SKILL.md +0 -720
- package/.aider-ecc/skills/google-workspace-ops/SKILL.md +0 -95
- package/.aider-ecc/skills/healthcare-cdss-patterns/SKILL.md +0 -245
- package/.aider-ecc/skills/healthcare-emr-patterns/SKILL.md +0 -159
- package/.aider-ecc/skills/healthcare-eval-harness/SKILL.md +0 -207
- package/.aider-ecc/skills/healthcare-phi-compliance/SKILL.md +0 -145
- package/.aider-ecc/skills/hexagonal-architecture/SKILL.md +0 -276
- package/.aider-ecc/skills/hipaa-compliance/SKILL.md +0 -78
- package/.aider-ecc/skills/hookify-rules/SKILL.md +0 -128
- package/.aider-ecc/skills/intent-routing/SKILL.md +0 -134
- package/.aider-ecc/skills/inventory-demand-planning/SKILL.md +0 -247
- package/.aider-ecc/skills/investor-materials/SKILL.md +0 -96
- package/.aider-ecc/skills/investor-outreach/SKILL.md +0 -91
- package/.aider-ecc/skills/iterative-retrieval/SKILL.md +0 -211
- package/.aider-ecc/skills/java-coding-standards/SKILL.md +0 -147
- package/.aider-ecc/skills/jira-integration/SKILL.md +0 -293
- package/.aider-ecc/skills/jpa-patterns/SKILL.md +0 -151
- package/.aider-ecc/skills/knowledge-ops/SKILL.md +0 -154
- package/.aider-ecc/skills/kodelyth-memory/SKILL.md +0 -136
- package/.aider-ecc/skills/kodelyth-quickstart/SKILL.md +0 -214
- package/.aider-ecc/skills/kotlin-coroutines-flows/SKILL.md +0 -284
- package/.aider-ecc/skills/kotlin-exposed-patterns/SKILL.md +0 -719
- package/.aider-ecc/skills/kotlin-ktor-patterns/SKILL.md +0 -689
- package/.aider-ecc/skills/kotlin-patterns/SKILL.md +0 -711
- package/.aider-ecc/skills/kotlin-testing/SKILL.md +0 -824
- package/.aider-ecc/skills/laravel-patterns/SKILL.md +0 -415
- package/.aider-ecc/skills/laravel-plugin-discovery/SKILL.md +0 -229
- package/.aider-ecc/skills/laravel-security/SKILL.md +0 -285
- package/.aider-ecc/skills/laravel-tdd/SKILL.md +0 -283
- package/.aider-ecc/skills/laravel-verification/SKILL.md +0 -179
- package/.aider-ecc/skills/lead-intelligence/SKILL.md +0 -321
- package/.aider-ecc/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/.aider-ecc/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/.aider-ecc/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/.aider-ecc/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/.aider-ecc/skills/liquid-glass-design/SKILL.md +0 -279
- package/.aider-ecc/skills/llm-trading-agent-security/SKILL.md +0 -146
- package/.aider-ecc/skills/logistics-exception-management/SKILL.md +0 -222
- package/.aider-ecc/skills/manim-video/SKILL.md +0 -89
- package/.aider-ecc/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/.aider-ecc/skills/market-research/SKILL.md +0 -75
- package/.aider-ecc/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.aider-ecc/skills/messages-ops/SKILL.md +0 -104
- package/.aider-ecc/skills/nanoclaw-repl/SKILL.md +0 -33
- package/.aider-ecc/skills/nestjs-patterns/SKILL.md +0 -230
- package/.aider-ecc/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.aider-ecc/skills/nodejs-keccak256/SKILL.md +0 -102
- package/.aider-ecc/skills/nutrient-document-processing/SKILL.md +0 -167
- package/.aider-ecc/skills/nuxt4-patterns/SKILL.md +0 -100
- package/.aider-ecc/skills/observability/SKILL.md +0 -390
- package/.aider-ecc/skills/observability-dashboard/SKILL.md +0 -119
- package/.aider-ecc/skills/openclaw-persona-forge/SKILL.md +0 -296
- package/.aider-ecc/skills/openclaw-persona-forge/gacha.py +0 -224
- package/.aider-ecc/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/.aider-ecc/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/.aider-ecc/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/.aider-ecc/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/.aider-ecc/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/.aider-ecc/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/.aider-ecc/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/.aider-ecc/skills/opensource-pipeline/SKILL.md +0 -255
- package/.aider-ecc/skills/perl-patterns/SKILL.md +0 -504
- package/.aider-ecc/skills/perl-security/SKILL.md +0 -503
- package/.aider-ecc/skills/perl-testing/SKILL.md +0 -475
- package/.aider-ecc/skills/plankton-code-quality/SKILL.md +0 -236
- package/.aider-ecc/skills/postgres-patterns/SKILL.md +0 -147
- package/.aider-ecc/skills/product-capability/SKILL.md +0 -141
- package/.aider-ecc/skills/product-lens/SKILL.md +0 -92
- package/.aider-ecc/skills/production-scheduling/SKILL.md +0 -238
- package/.aider-ecc/skills/project-flow-ops/SKILL.md +0 -111
- package/.aider-ecc/skills/prompt-optimizer/SKILL.md +0 -397
- package/.aider-ecc/skills/python-patterns/SKILL.md +0 -750
- package/.aider-ecc/skills/python-testing/SKILL.md +0 -816
- package/.aider-ecc/skills/pytorch-patterns/SKILL.md +0 -396
- package/.aider-ecc/skills/quality-nonconformance/SKILL.md +0 -260
- package/.aider-ecc/skills/ralphinho-rfc-pipeline/SKILL.md +0 -67
- package/.aider-ecc/skills/regex-vs-llm-structured-text/SKILL.md +0 -220
- package/.aider-ecc/skills/remotion-video-creation/SKILL.md +0 -43
- package/.aider-ecc/skills/remotion-video-creation/rules/3d.md +0 -86
- package/.aider-ecc/skills/remotion-video-creation/rules/animations.md +0 -29
- package/.aider-ecc/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/.aider-ecc/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.aider-ecc/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.aider-ecc/skills/remotion-video-creation/rules/assets.md +0 -78
- package/.aider-ecc/skills/remotion-video-creation/rules/audio.md +0 -172
- package/.aider-ecc/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/.aider-ecc/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/.aider-ecc/skills/remotion-video-creation/rules/charts.md +0 -58
- package/.aider-ecc/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/.aider-ecc/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/.aider-ecc/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/.aider-ecc/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/.aider-ecc/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/.aider-ecc/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/.aider-ecc/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/.aider-ecc/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/.aider-ecc/skills/remotion-video-creation/rules/images.md +0 -130
- package/.aider-ecc/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/.aider-ecc/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/.aider-ecc/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/.aider-ecc/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/.aider-ecc/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/.aider-ecc/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/.aider-ecc/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/.aider-ecc/skills/remotion-video-creation/rules/timing.md +0 -179
- package/.aider-ecc/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/.aider-ecc/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/.aider-ecc/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/.aider-ecc/skills/remotion-video-creation/rules/videos.md +0 -171
- package/.aider-ecc/skills/repo-scan/SKILL.md +0 -78
- package/.aider-ecc/skills/research-ops/SKILL.md +0 -112
- package/.aider-ecc/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/.aider-ecc/skills/rules-distill/SKILL.md +0 -264
- package/.aider-ecc/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/.aider-ecc/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/.aider-ecc/skills/rust-patterns/SKILL.md +0 -499
- package/.aider-ecc/skills/rust-testing/SKILL.md +0 -500
- package/.aider-ecc/skills/safety-guard/SKILL.md +0 -75
- package/.aider-ecc/skills/santa-method/SKILL.md +0 -306
- package/.aider-ecc/skills/search-first/SKILL.md +0 -161
- package/.aider-ecc/skills/security-bounty-hunter/SKILL.md +0 -99
- package/.aider-ecc/skills/security-review/SKILL.md +0 -495
- package/.aider-ecc/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/.aider-ecc/skills/security-scan/SKILL.md +0 -165
- package/.aider-ecc/skills/self-evolving-memory/SKILL.md +0 -175
- package/.aider-ecc/skills/seo/SKILL.md +0 -154
- package/.aider-ecc/skills/session-replay/SKILL.md +0 -199
- package/.aider-ecc/skills/skill-comply/SKILL.md +0 -58
- package/.aider-ecc/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/.aider-ecc/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/.aider-ecc/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/.aider-ecc/skills/skill-comply/prompts/classifier.md +0 -24
- package/.aider-ecc/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/.aider-ecc/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/.aider-ecc/skills/skill-comply/pyproject.toml +0 -15
- package/.aider-ecc/skills/skill-comply/scripts/__init__.py +0 -0
- package/.aider-ecc/skills/skill-comply/scripts/classifier.py +0 -85
- package/.aider-ecc/skills/skill-comply/scripts/grader.py +0 -122
- package/.aider-ecc/skills/skill-comply/scripts/parser.py +0 -107
- package/.aider-ecc/skills/skill-comply/scripts/report.py +0 -170
- package/.aider-ecc/skills/skill-comply/scripts/run.py +0 -127
- package/.aider-ecc/skills/skill-comply/scripts/runner.py +0 -161
- package/.aider-ecc/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/.aider-ecc/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/.aider-ecc/skills/skill-comply/scripts/utils.py +0 -13
- package/.aider-ecc/skills/skill-stocktake/SKILL.md +0 -193
- package/.aider-ecc/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/.aider-ecc/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/.aider-ecc/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/.aider-ecc/skills/smart-debug/SKILL.md +0 -241
- package/.aider-ecc/skills/social-graph-ranker/SKILL.md +0 -154
- package/.aider-ecc/skills/springboot-patterns/SKILL.md +0 -314
- package/.aider-ecc/skills/springboot-security/SKILL.md +0 -272
- package/.aider-ecc/skills/springboot-tdd/SKILL.md +0 -158
- package/.aider-ecc/skills/springboot-verification/SKILL.md +0 -231
- package/.aider-ecc/skills/strategic-compact/SKILL.md +0 -131
- package/.aider-ecc/skills/strategic-compact/suggest-compact.sh +0 -54
- package/.aider-ecc/skills/supply-chain-verification/SKILL.md +0 -201
- package/.aider-ecc/skills/swarm-orchestrator/SKILL.md +0 -177
- package/.aider-ecc/skills/swift-actor-persistence/SKILL.md +0 -143
- package/.aider-ecc/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/.aider-ecc/skills/swift-protocol-di-testing/SKILL.md +0 -190
- package/.aider-ecc/skills/swiftui-patterns/SKILL.md +0 -259
- package/.aider-ecc/skills/tdd-workflow/SKILL.md +0 -463
- package/.aider-ecc/skills/team-builder/SKILL.md +0 -168
- package/.aider-ecc/skills/terminal-ops/SKILL.md +0 -109
- package/.aider-ecc/skills/terse-mode/SKILL.md +0 -97
- package/.aider-ecc/skills/token-budget-advisor/SKILL.md +0 -133
- package/.aider-ecc/skills/ui-demo/SKILL.md +0 -465
- package/.aider-ecc/skills/unified-notifications-ops/SKILL.md +0 -187
- package/.aider-ecc/skills/verification-loop/SKILL.md +0 -126
- package/.aider-ecc/skills/video-editing/SKILL.md +0 -310
- package/.aider-ecc/skills/videodb/SKILL.md +0 -374
- package/.aider-ecc/skills/videodb/reference/api-reference.md +0 -550
- package/.aider-ecc/skills/videodb/reference/capture-reference.md +0 -407
- package/.aider-ecc/skills/videodb/reference/capture.md +0 -101
- package/.aider-ecc/skills/videodb/reference/editor.md +0 -443
- package/.aider-ecc/skills/videodb/reference/generative.md +0 -331
- package/.aider-ecc/skills/videodb/reference/rtstream-reference.md +0 -564
- package/.aider-ecc/skills/videodb/reference/rtstream.md +0 -65
- package/.aider-ecc/skills/videodb/reference/search.md +0 -230
- package/.aider-ecc/skills/videodb/reference/streaming.md +0 -406
- package/.aider-ecc/skills/videodb/reference/use-cases.md +0 -118
- package/.aider-ecc/skills/videodb/scripts/ws_listener.py +0 -282
- package/.aider-ecc/skills/visa-doc-translate/README.md +0 -86
- package/.aider-ecc/skills/visa-doc-translate/SKILL.md +0 -117
- package/.aider-ecc/skills/workspace-surface-audit/SKILL.md +0 -125
- package/.aider-ecc/skills/x-api/SKILL.md +0 -230
- package/.clinerules/README.md +0 -108
- package/.clinerules/agent-intent-routing.md +0 -832
- package/.clinerules/agent-sort.md +0 -23
- package/.clinerules/agents.md +0 -50
- package/.clinerules/api-guardian.md +0 -279
- package/.clinerules/architect.md +0 -211
- package/.clinerules/arena.md +0 -136
- package/.clinerules/aside.md +0 -164
- package/.clinerules/backdoor-hunter.md +0 -260
- package/.clinerules/build-error-resolver.md +0 -114
- package/.clinerules/build-fix.md +0 -66
- package/.clinerules/chaos-engineer.md +0 -251
- package/.clinerules/checkpoint.md +0 -79
- package/.clinerules/chief-of-staff.md +0 -151
- package/.clinerules/claw.md +0 -23
- package/.clinerules/code-architect.md +0 -71
- package/.clinerules/code-explorer.md +0 -69
- package/.clinerules/code-review.md +0 -289
- package/.clinerules/code-reviewer.md +0 -258
- package/.clinerules/code-simplifier.md +0 -47
- package/.clinerules/code-stealer-detector.md +0 -228
- package/.clinerules/coding-style.md +0 -41
- package/.clinerules/comment-analyzer.md +0 -45
- package/.clinerules/context-budget.md +0 -23
- package/.clinerules/conversation-analyzer.md +0 -52
- package/.clinerules/cost-aware-model-routing.md +0 -152
- package/.clinerules/cpp-build-resolver.md +0 -90
- package/.clinerules/cpp-build.md +0 -173
- package/.clinerules/cpp-review.md +0 -132
- package/.clinerules/cpp-reviewer.md +0 -72
- package/.clinerules/cpp-test.md +0 -251
- package/.clinerules/csharp-reviewer.md +0 -101
- package/.clinerules/dart-build-resolver.md +0 -201
- package/.clinerules/dashboard.md +0 -67
- package/.clinerules/database-reviewer.md +0 -91
- package/.clinerules/debug-blitz.md +0 -70
- package/.clinerules/debug-detective.md +0 -410
- package/.clinerules/dependency-doctor.md +0 -121
- package/.clinerules/design-quality.md +0 -63
- package/.clinerules/development-workflow.md +0 -44
- package/.clinerules/devfleet.md +0 -23
- package/.clinerules/devil-mode.md +0 -121
- package/.clinerules/doc-updater.md +0 -107
- package/.clinerules/docs-lookup.md +0 -68
- package/.clinerules/docs.md +0 -23
- package/.clinerules/doctor.md +0 -75
- package/.clinerules/e2e-runner.md +0 -107
- package/.clinerules/e2e.md +0 -268
- package/.clinerules/env-debugger.md +0 -154
- package/.clinerules/eval.md +0 -23
- package/.clinerules/evil-mode.md +0 -106
- package/.clinerules/evolve.md +0 -178
- package/.clinerules/feature-dev.md +0 -49
- package/.clinerules/flake-hunter.md +0 -142
- package/.clinerules/flutter-build.md +0 -164
- package/.clinerules/flutter-review.md +0 -116
- package/.clinerules/flutter-reviewer.md +0 -243
- package/.clinerules/flutter-test.md +0 -144
- package/.clinerules/gan-build.md +0 -104
- package/.clinerules/gan-design.md +0 -40
- package/.clinerules/gan-evaluator.md +0 -209
- package/.clinerules/gan-generator.md +0 -131
- package/.clinerules/gan-planner.md +0 -99
- package/.clinerules/git-rescue.md +0 -133
- package/.clinerules/git-workflow.md +0 -24
- package/.clinerules/go-build-resolver.md +0 -94
- package/.clinerules/go-build.md +0 -183
- package/.clinerules/go-review.md +0 -148
- package/.clinerules/go-reviewer.md +0 -76
- package/.clinerules/go-test.md +0 -268
- package/.clinerules/god-mode.md +0 -85
- package/.clinerules/gradle-build.md +0 -70
- package/.clinerules/harness-audit.md +0 -77
- package/.clinerules/harness-optimizer.md +0 -35
- package/.clinerules/healthcare-reviewer.md +0 -83
- package/.clinerules/hookify-configure.md +0 -14
- package/.clinerules/hookify-help.md +0 -46
- package/.clinerules/hookify-list.md +0 -21
- package/.clinerules/hookify.md +0 -50
- package/.clinerules/hooks.md +0 -23
- package/.clinerules/image-architect.md +0 -190
- package/.clinerules/immune.md +0 -89
- package/.clinerules/incident-commander.md +0 -228
- package/.clinerules/instinct-export.md +0 -66
- package/.clinerules/instinct-import.md +0 -114
- package/.clinerules/instinct-status.md +0 -59
- package/.clinerules/jailbreak-tester.md +0 -222
- package/.clinerules/java-build-resolver.md +0 -153
- package/.clinerules/java-reviewer.md +0 -92
- package/.clinerules/jira.md +0 -106
- package/.clinerules/kodelyth-advisor.md +0 -172
- package/.clinerules/kodelyth-memory.md +0 -87
- package/.clinerules/kotlin-build-resolver.md +0 -118
- package/.clinerules/kotlin-build.md +0 -174
- package/.clinerules/kotlin-review.md +0 -140
- package/.clinerules/kotlin-reviewer.md +0 -159
- package/.clinerules/kotlin-test.md +0 -312
- package/.clinerules/learn-eval.md +0 -116
- package/.clinerules/learn.md +0 -74
- package/.clinerules/lessons.md +0 -92
- package/.clinerules/license-violation-finder.md +0 -212
- package/.clinerules/load-tester.md +0 -284
- package/.clinerules/loop-operator.md +0 -36
- package/.clinerules/loop-start.md +0 -37
- package/.clinerules/loop-status.md +0 -28
- package/.clinerules/memory-evolve.md +0 -71
- package/.clinerules/memory-protocol.md +0 -87
- package/.clinerules/memory.md +0 -62
- package/.clinerules/migration-guide.md +0 -369
- package/.clinerules/model-route.md +0 -31
- package/.clinerules/multi-backend.md +0 -163
- package/.clinerules/multi-execute.md +0 -320
- package/.clinerules/multi-frontend.md +0 -163
- package/.clinerules/multi-plan.md +0 -273
- package/.clinerules/multi-workflow.md +0 -196
- package/.clinerules/onboard.md +0 -72
- package/.clinerules/opensource-forker.md +0 -198
- package/.clinerules/opensource-packager.md +0 -249
- package/.clinerules/opensource-sanitizer.md +0 -188
- package/.clinerules/orchestrate.md +0 -135
- package/.clinerules/pair-programmer.md +0 -261
- package/.clinerules/patterns.md +0 -71
- package/.clinerules/performance-optimizer.md +0 -446
- package/.clinerules/performance.md +0 -55
- package/.clinerules/plan.md +0 -117
- package/.clinerules/planner.md +0 -212
- package/.clinerules/pm2.md +0 -277
- package/.clinerules/pr-test-analyzer.md +0 -45
- package/.clinerules/pre-release.md +0 -66
- package/.clinerules/project-launch.md +0 -91
- package/.clinerules/projects.md +0 -39
- package/.clinerules/promote.md +0 -41
- package/.clinerules/prompt-injection-hunter.md +0 -126
- package/.clinerules/prompt-optimize.md +0 -23
- package/.clinerules/prp-commit.md +0 -112
- package/.clinerules/prp-implement.md +0 -385
- package/.clinerules/prp-plan.md +0 -502
- package/.clinerules/prp-pr.md +0 -184
- package/.clinerules/prp-prd.md +0 -447
- package/.clinerules/prune.md +0 -31
- package/.clinerules/python-review.md +0 -297
- package/.clinerules/python-reviewer.md +0 -98
- package/.clinerules/pytorch-build-resolver.md +0 -120
- package/.clinerules/quality-gate.md +0 -33
- package/.clinerules/refactor-clean.md +0 -84
- package/.clinerules/refactor-cleaner.md +0 -85
- package/.clinerules/refactor-sprint.md +0 -77
- package/.clinerules/release-captain.md +0 -226
- package/.clinerules/replay.md +0 -61
- package/.clinerules/resume-session.md +0 -156
- package/.clinerules/review-pr.md +0 -37
- package/.clinerules/route-model.md +0 -48
- package/.clinerules/rules-distill.md +0 -20
- package/.clinerules/rust-build-resolver.md +0 -148
- package/.clinerules/rust-build.md +0 -187
- package/.clinerules/rust-review.md +0 -142
- package/.clinerules/rust-reviewer.md +0 -94
- package/.clinerules/rust-test.md +0 -308
- package/.clinerules/santa-loop.md +0 -175
- package/.clinerules/save-session.md +0 -275
- package/.clinerules/secret-hunter.md +0 -209
- package/.clinerules/security-audit.md +0 -66
- package/.clinerules/security-reviewer.md +0 -166
- package/.clinerules/security.md +0 -56
- package/.clinerules/self-improvement-workflow.md +0 -141
- package/.clinerules/seo-specialist.md +0 -62
- package/.clinerules/sessions.md +0 -333
- package/.clinerules/setup-pm.md +0 -80
- package/.clinerules/shell-portability.md +0 -70
- package/.clinerules/silent-failure-hunter.md +0 -50
- package/.clinerules/skill-create.md +0 -174
- package/.clinerules/skill-health.md +0 -54
- package/.clinerules/supply-chain-auditor.md +0 -195
- package/.clinerules/swarm.md +0 -68
- package/.clinerules/tdd-guide.md +0 -91
- package/.clinerules/tdd.md +0 -231
- package/.clinerules/team-review.md +0 -107
- package/.clinerules/terse-compress.md +0 -78
- package/.clinerules/terse.md +0 -40
- package/.clinerules/test-coverage.md +0 -73
- package/.clinerules/testing.md +0 -65
- package/.clinerules/type-design-analyzer.md +0 -41
- package/.clinerules/typescript-reviewer.md +0 -112
- package/.clinerules/update-codemaps.md +0 -76
- package/.clinerules/update-docs.md +0 -88
- package/.clinerules/update.md +0 -92
- package/.clinerules/ux-reviewer.md +0 -483
- package/.clinerules/verify-supply-chain.md +0 -59
- package/.clinerules/verify.md +0 -23
- package/.cursor/rules/README.md +0 -108
- package/.cursor/rules/agent-intent-routing.md +0 -832
- package/.cursor/rules/agents.md +0 -50
- package/.cursor/rules/code-review.md +0 -124
- package/.cursor/rules/coding-style.md +0 -41
- package/.cursor/rules/cost-aware-model-routing.md +0 -152
- package/.cursor/rules/design-quality.md +0 -63
- package/.cursor/rules/development-workflow.md +0 -44
- package/.cursor/rules/git-workflow.md +0 -24
- package/.cursor/rules/hooks.md +0 -23
- package/.cursor/rules/memory-protocol.md +0 -87
- package/.cursor/rules/patterns.md +0 -71
- package/.cursor/rules/performance.md +0 -55
- package/.cursor/rules/security.md +0 -56
- package/.cursor/rules/self-improvement-workflow.md +0 -141
- package/.cursor/rules/shell-portability.md +0 -70
- package/.cursor/rules/testing.md +0 -65
- package/.cursor/skills/agent-eval/SKILL.md +0 -145
- package/.cursor/skills/agent-handoff/SKILL.md +0 -184
- package/.cursor/skills/agent-harness-construction/SKILL.md +0 -73
- package/.cursor/skills/agent-introspection-debugging/SKILL.md +0 -153
- package/.cursor/skills/agent-payment-x402/SKILL.md +0 -178
- package/.cursor/skills/agent-sort/SKILL.md +0 -215
- package/.cursor/skills/agentic-engineering/SKILL.md +0 -63
- package/.cursor/skills/ai-first-engineering/SKILL.md +0 -51
- package/.cursor/skills/ai-regression-testing/SKILL.md +0 -385
- package/.cursor/skills/android-clean-architecture/SKILL.md +0 -339
- package/.cursor/skills/api-connector-builder/SKILL.md +0 -121
- package/.cursor/skills/api-design/SKILL.md +0 -523
- package/.cursor/skills/architecture-decision-records/SKILL.md +0 -179
- package/.cursor/skills/article-writing/SKILL.md +0 -79
- package/.cursor/skills/automation-audit-ops/SKILL.md +0 -142
- package/.cursor/skills/autonomous-agent-harness/SKILL.md +0 -267
- package/.cursor/skills/autonomous-loops/SKILL.md +0 -610
- package/.cursor/skills/backend-patterns/SKILL.md +0 -598
- package/.cursor/skills/benchmark/SKILL.md +0 -93
- package/.cursor/skills/blueprint/SKILL.md +0 -105
- package/.cursor/skills/brand-voice/SKILL.md +0 -97
- package/.cursor/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/.cursor/skills/browser-qa/SKILL.md +0 -87
- package/.cursor/skills/bun-runtime/SKILL.md +0 -84
- package/.cursor/skills/canary-watch/SKILL.md +0 -99
- package/.cursor/skills/carrier-relationship-management/SKILL.md +0 -212
- package/.cursor/skills/ck/SKILL.md +0 -147
- package/.cursor/skills/ck/commands/forget.mjs +0 -44
- package/.cursor/skills/ck/commands/info.mjs +0 -24
- package/.cursor/skills/ck/commands/init.mjs +0 -143
- package/.cursor/skills/ck/commands/list.mjs +0 -40
- package/.cursor/skills/ck/commands/migrate.mjs +0 -202
- package/.cursor/skills/ck/commands/resume.mjs +0 -36
- package/.cursor/skills/ck/commands/save.mjs +0 -210
- package/.cursor/skills/ck/commands/shared.mjs +0 -387
- package/.cursor/skills/ck/hooks/session-start.mjs +0 -224
- package/.cursor/skills/claude-api/SKILL.md +0 -337
- package/.cursor/skills/claude-devfleet/SKILL.md +0 -103
- package/.cursor/skills/click-path-audit/SKILL.md +0 -244
- package/.cursor/skills/clickhouse-io/SKILL.md +0 -439
- package/.cursor/skills/code-tour/SKILL.md +0 -236
- package/.cursor/skills/codebase-onboarding/SKILL.md +0 -233
- package/.cursor/skills/coding-standards/SKILL.md +0 -549
- package/.cursor/skills/compose-multiplatform-patterns/SKILL.md +0 -299
- package/.cursor/skills/configure-ecc/SKILL.md +0 -367
- package/.cursor/skills/connections-optimizer/SKILL.md +0 -189
- package/.cursor/skills/content-engine/SKILL.md +0 -131
- package/.cursor/skills/content-hash-cache-pattern/SKILL.md +0 -161
- package/.cursor/skills/context-budget/SKILL.md +0 -135
- package/.cursor/skills/continuous-agent-loop/SKILL.md +0 -45
- package/.cursor/skills/continuous-learning/SKILL.md +0 -123
- package/.cursor/skills/continuous-learning/config.json +0 -18
- package/.cursor/skills/continuous-learning/evaluate-session.sh +0 -69
- package/.cursor/skills/continuous-learning-v2/SKILL.md +0 -365
- package/.cursor/skills/continuous-learning-v2/agents/observer-loop.sh +0 -271
- package/.cursor/skills/continuous-learning-v2/agents/observer.md +0 -198
- package/.cursor/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/.cursor/skills/continuous-learning-v2/agents/start-observer.sh +0 -244
- package/.cursor/skills/continuous-learning-v2/config.json +0 -8
- package/.cursor/skills/continuous-learning-v2/hooks/observe.sh +0 -428
- package/.cursor/skills/continuous-learning-v2/scripts/detect-project.sh +0 -228
- package/.cursor/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1426
- package/.cursor/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -984
- package/.cursor/skills/cost-aware-llm-pipeline/SKILL.md +0 -183
- package/.cursor/skills/cost-aware-model-routing/SKILL.md +0 -153
- package/.cursor/skills/council/SKILL.md +0 -203
- package/.cursor/skills/cpp-coding-standards/SKILL.md +0 -723
- package/.cursor/skills/cpp-testing/SKILL.md +0 -324
- package/.cursor/skills/crosspost/SKILL.md +0 -111
- package/.cursor/skills/csharp-testing/SKILL.md +0 -321
- package/.cursor/skills/customer-billing-ops/SKILL.md +0 -140
- package/.cursor/skills/customs-trade-compliance/SKILL.md +0 -263
- package/.cursor/skills/dart-flutter-patterns/SKILL.md +0 -563
- package/.cursor/skills/dashboard-builder/SKILL.md +0 -109
- package/.cursor/skills/data-scraper-agent/SKILL.md +0 -764
- package/.cursor/skills/database-migrations/SKILL.md +0 -429
- package/.cursor/skills/deep-research/SKILL.md +0 -155
- package/.cursor/skills/defi-amm-security/SKILL.md +0 -160
- package/.cursor/skills/deployment-patterns/SKILL.md +0 -427
- package/.cursor/skills/design-system/SKILL.md +0 -82
- package/.cursor/skills/django-patterns/SKILL.md +0 -734
- package/.cursor/skills/django-security/SKILL.md +0 -593
- package/.cursor/skills/django-tdd/SKILL.md +0 -729
- package/.cursor/skills/django-verification/SKILL.md +0 -469
- package/.cursor/skills/dmux-workflows/SKILL.md +0 -191
- package/.cursor/skills/docker-patterns/SKILL.md +0 -364
- package/.cursor/skills/documentation-lookup/SKILL.md +0 -90
- package/.cursor/skills/dotnet-patterns/SKILL.md +0 -321
- package/.cursor/skills/e2e-testing/SKILL.md +0 -326
- package/.cursor/skills/ecc-token-savings/SKILL.md +0 -106
- package/.cursor/skills/ecc-tools-cost-audit/SKILL.md +0 -160
- package/.cursor/skills/email-ops/SKILL.md +0 -121
- package/.cursor/skills/energy-procurement/SKILL.md +0 -228
- package/.cursor/skills/enterprise-agent-ops/SKILL.md +0 -50
- package/.cursor/skills/eval-harness/SKILL.md +0 -270
- package/.cursor/skills/evm-token-decimals/SKILL.md +0 -130
- package/.cursor/skills/exa-search/SKILL.md +0 -103
- package/.cursor/skills/fal-ai-media/SKILL.md +0 -284
- package/.cursor/skills/finance-billing-ops/SKILL.md +0 -127
- package/.cursor/skills/flutter-dart-code-review/SKILL.md +0 -435
- package/.cursor/skills/foundation-models-on-device/SKILL.md +0 -243
- package/.cursor/skills/frontend-design/SKILL.md +0 -145
- package/.cursor/skills/frontend-patterns/SKILL.md +0 -642
- package/.cursor/skills/frontend-slides/SKILL.md +0 -184
- package/.cursor/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.cursor/skills/gan-style-harness/SKILL.md +0 -278
- package/.cursor/skills/git-mastery/SKILL.md +0 -366
- package/.cursor/skills/git-workflow/SKILL.md +0 -715
- package/.cursor/skills/github-ops/SKILL.md +0 -144
- package/.cursor/skills/golang-patterns/SKILL.md +0 -674
- package/.cursor/skills/golang-testing/SKILL.md +0 -720
- package/.cursor/skills/google-workspace-ops/SKILL.md +0 -95
- package/.cursor/skills/healthcare-cdss-patterns/SKILL.md +0 -245
- package/.cursor/skills/healthcare-emr-patterns/SKILL.md +0 -159
- package/.cursor/skills/healthcare-eval-harness/SKILL.md +0 -207
- package/.cursor/skills/healthcare-phi-compliance/SKILL.md +0 -145
- package/.cursor/skills/hexagonal-architecture/SKILL.md +0 -276
- package/.cursor/skills/hipaa-compliance/SKILL.md +0 -78
- package/.cursor/skills/hookify-rules/SKILL.md +0 -128
- package/.cursor/skills/intent-routing/SKILL.md +0 -134
- package/.cursor/skills/inventory-demand-planning/SKILL.md +0 -247
- package/.cursor/skills/investor-materials/SKILL.md +0 -96
- package/.cursor/skills/investor-outreach/SKILL.md +0 -91
- package/.cursor/skills/iterative-retrieval/SKILL.md +0 -211
- package/.cursor/skills/java-coding-standards/SKILL.md +0 -147
- package/.cursor/skills/jira-integration/SKILL.md +0 -293
- package/.cursor/skills/jpa-patterns/SKILL.md +0 -151
- package/.cursor/skills/knowledge-ops/SKILL.md +0 -154
- package/.cursor/skills/kodelyth-memory/SKILL.md +0 -136
- package/.cursor/skills/kodelyth-quickstart/SKILL.md +0 -214
- package/.cursor/skills/kotlin-coroutines-flows/SKILL.md +0 -284
- package/.cursor/skills/kotlin-exposed-patterns/SKILL.md +0 -719
- package/.cursor/skills/kotlin-ktor-patterns/SKILL.md +0 -689
- package/.cursor/skills/kotlin-patterns/SKILL.md +0 -711
- package/.cursor/skills/kotlin-testing/SKILL.md +0 -824
- package/.cursor/skills/laravel-patterns/SKILL.md +0 -415
- package/.cursor/skills/laravel-plugin-discovery/SKILL.md +0 -229
- package/.cursor/skills/laravel-security/SKILL.md +0 -285
- package/.cursor/skills/laravel-tdd/SKILL.md +0 -283
- package/.cursor/skills/laravel-verification/SKILL.md +0 -179
- package/.cursor/skills/lead-intelligence/SKILL.md +0 -321
- package/.cursor/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/.cursor/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/.cursor/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/.cursor/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/.cursor/skills/liquid-glass-design/SKILL.md +0 -279
- package/.cursor/skills/llm-trading-agent-security/SKILL.md +0 -146
- package/.cursor/skills/logistics-exception-management/SKILL.md +0 -222
- package/.cursor/skills/manim-video/SKILL.md +0 -89
- package/.cursor/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/.cursor/skills/market-research/SKILL.md +0 -75
- package/.cursor/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.cursor/skills/messages-ops/SKILL.md +0 -104
- package/.cursor/skills/nanoclaw-repl/SKILL.md +0 -33
- package/.cursor/skills/nestjs-patterns/SKILL.md +0 -230
- package/.cursor/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.cursor/skills/nodejs-keccak256/SKILL.md +0 -102
- package/.cursor/skills/nutrient-document-processing/SKILL.md +0 -167
- package/.cursor/skills/nuxt4-patterns/SKILL.md +0 -100
- package/.cursor/skills/observability/SKILL.md +0 -390
- package/.cursor/skills/observability-dashboard/SKILL.md +0 -119
- package/.cursor/skills/openclaw-persona-forge/SKILL.md +0 -296
- package/.cursor/skills/openclaw-persona-forge/gacha.py +0 -224
- package/.cursor/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/.cursor/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/.cursor/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/.cursor/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/.cursor/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/.cursor/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/.cursor/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/.cursor/skills/opensource-pipeline/SKILL.md +0 -255
- package/.cursor/skills/perl-patterns/SKILL.md +0 -504
- package/.cursor/skills/perl-security/SKILL.md +0 -503
- package/.cursor/skills/perl-testing/SKILL.md +0 -475
- package/.cursor/skills/plankton-code-quality/SKILL.md +0 -236
- package/.cursor/skills/postgres-patterns/SKILL.md +0 -147
- package/.cursor/skills/product-capability/SKILL.md +0 -141
- package/.cursor/skills/product-lens/SKILL.md +0 -92
- package/.cursor/skills/production-scheduling/SKILL.md +0 -238
- package/.cursor/skills/project-flow-ops/SKILL.md +0 -111
- package/.cursor/skills/prompt-optimizer/SKILL.md +0 -397
- package/.cursor/skills/python-patterns/SKILL.md +0 -750
- package/.cursor/skills/python-testing/SKILL.md +0 -816
- package/.cursor/skills/pytorch-patterns/SKILL.md +0 -396
- package/.cursor/skills/quality-nonconformance/SKILL.md +0 -260
- package/.cursor/skills/ralphinho-rfc-pipeline/SKILL.md +0 -67
- package/.cursor/skills/regex-vs-llm-structured-text/SKILL.md +0 -220
- package/.cursor/skills/remotion-video-creation/SKILL.md +0 -43
- package/.cursor/skills/remotion-video-creation/rules/3d.md +0 -86
- package/.cursor/skills/remotion-video-creation/rules/animations.md +0 -29
- package/.cursor/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/.cursor/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.cursor/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.cursor/skills/remotion-video-creation/rules/assets.md +0 -78
- package/.cursor/skills/remotion-video-creation/rules/audio.md +0 -172
- package/.cursor/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/.cursor/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/.cursor/skills/remotion-video-creation/rules/charts.md +0 -58
- package/.cursor/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/.cursor/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/.cursor/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/.cursor/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/.cursor/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/.cursor/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/.cursor/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/.cursor/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/.cursor/skills/remotion-video-creation/rules/images.md +0 -130
- package/.cursor/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/.cursor/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/.cursor/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/.cursor/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/.cursor/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/.cursor/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/.cursor/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/.cursor/skills/remotion-video-creation/rules/timing.md +0 -179
- package/.cursor/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/.cursor/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/.cursor/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/.cursor/skills/remotion-video-creation/rules/videos.md +0 -171
- package/.cursor/skills/repo-scan/SKILL.md +0 -78
- package/.cursor/skills/research-ops/SKILL.md +0 -112
- package/.cursor/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/.cursor/skills/rules-distill/SKILL.md +0 -264
- package/.cursor/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/.cursor/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/.cursor/skills/rust-patterns/SKILL.md +0 -499
- package/.cursor/skills/rust-testing/SKILL.md +0 -500
- package/.cursor/skills/safety-guard/SKILL.md +0 -75
- package/.cursor/skills/santa-method/SKILL.md +0 -306
- package/.cursor/skills/search-first/SKILL.md +0 -161
- package/.cursor/skills/security-bounty-hunter/SKILL.md +0 -99
- package/.cursor/skills/security-review/SKILL.md +0 -495
- package/.cursor/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/.cursor/skills/security-scan/SKILL.md +0 -165
- package/.cursor/skills/self-evolving-memory/SKILL.md +0 -175
- package/.cursor/skills/seo/SKILL.md +0 -154
- package/.cursor/skills/session-replay/SKILL.md +0 -199
- package/.cursor/skills/skill-comply/SKILL.md +0 -58
- package/.cursor/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/.cursor/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/.cursor/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/.cursor/skills/skill-comply/prompts/classifier.md +0 -24
- package/.cursor/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/.cursor/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/.cursor/skills/skill-comply/pyproject.toml +0 -15
- package/.cursor/skills/skill-comply/scripts/__init__.py +0 -0
- package/.cursor/skills/skill-comply/scripts/classifier.py +0 -85
- package/.cursor/skills/skill-comply/scripts/grader.py +0 -122
- package/.cursor/skills/skill-comply/scripts/parser.py +0 -107
- package/.cursor/skills/skill-comply/scripts/report.py +0 -170
- package/.cursor/skills/skill-comply/scripts/run.py +0 -127
- package/.cursor/skills/skill-comply/scripts/runner.py +0 -161
- package/.cursor/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/.cursor/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/.cursor/skills/skill-comply/scripts/utils.py +0 -13
- package/.cursor/skills/skill-stocktake/SKILL.md +0 -193
- package/.cursor/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/.cursor/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/.cursor/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/.cursor/skills/smart-debug/SKILL.md +0 -241
- package/.cursor/skills/social-graph-ranker/SKILL.md +0 -154
- package/.cursor/skills/springboot-patterns/SKILL.md +0 -314
- package/.cursor/skills/springboot-security/SKILL.md +0 -272
- package/.cursor/skills/springboot-tdd/SKILL.md +0 -158
- package/.cursor/skills/springboot-verification/SKILL.md +0 -231
- package/.cursor/skills/strategic-compact/SKILL.md +0 -131
- package/.cursor/skills/strategic-compact/suggest-compact.sh +0 -54
- package/.cursor/skills/supply-chain-verification/SKILL.md +0 -201
- package/.cursor/skills/swarm-orchestrator/SKILL.md +0 -177
- package/.cursor/skills/swift-actor-persistence/SKILL.md +0 -143
- package/.cursor/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/.cursor/skills/swift-protocol-di-testing/SKILL.md +0 -190
- package/.cursor/skills/swiftui-patterns/SKILL.md +0 -259
- package/.cursor/skills/tdd-workflow/SKILL.md +0 -463
- package/.cursor/skills/team-builder/SKILL.md +0 -168
- package/.cursor/skills/terminal-ops/SKILL.md +0 -109
- package/.cursor/skills/terse-mode/SKILL.md +0 -97
- package/.cursor/skills/token-budget-advisor/SKILL.md +0 -133
- package/.cursor/skills/ui-demo/SKILL.md +0 -465
- package/.cursor/skills/unified-notifications-ops/SKILL.md +0 -187
- package/.cursor/skills/verification-loop/SKILL.md +0 -126
- package/.cursor/skills/video-editing/SKILL.md +0 -310
- package/.cursor/skills/videodb/SKILL.md +0 -374
- package/.cursor/skills/videodb/reference/api-reference.md +0 -550
- package/.cursor/skills/videodb/reference/capture-reference.md +0 -407
- package/.cursor/skills/videodb/reference/capture.md +0 -101
- package/.cursor/skills/videodb/reference/editor.md +0 -443
- package/.cursor/skills/videodb/reference/generative.md +0 -331
- package/.cursor/skills/videodb/reference/rtstream-reference.md +0 -564
- package/.cursor/skills/videodb/reference/rtstream.md +0 -65
- package/.cursor/skills/videodb/reference/search.md +0 -230
- package/.cursor/skills/videodb/reference/streaming.md +0 -406
- package/.cursor/skills/videodb/reference/use-cases.md +0 -118
- package/.cursor/skills/videodb/scripts/ws_listener.py +0 -282
- package/.cursor/skills/visa-doc-translate/README.md +0 -86
- package/.cursor/skills/visa-doc-translate/SKILL.md +0 -117
- package/.cursor/skills/workspace-surface-audit/SKILL.md +0 -125
- package/.cursor/skills/x-api/SKILL.md +0 -230
- package/.gemini/GEMINI.md +0 -13
- package/.gemini/agents/api-guardian.md +0 -279
- package/.gemini/agents/architect.md +0 -211
- package/.gemini/agents/backdoor-hunter.md +0 -260
- package/.gemini/agents/build-error-resolver.md +0 -114
- package/.gemini/agents/chaos-engineer.md +0 -251
- package/.gemini/agents/chief-of-staff.md +0 -151
- package/.gemini/agents/code-architect.md +0 -71
- package/.gemini/agents/code-explorer.md +0 -69
- package/.gemini/agents/code-reviewer.md +0 -258
- package/.gemini/agents/code-simplifier.md +0 -47
- package/.gemini/agents/code-stealer-detector.md +0 -228
- package/.gemini/agents/comment-analyzer.md +0 -45
- package/.gemini/agents/conversation-analyzer.md +0 -52
- package/.gemini/agents/cpp-build-resolver.md +0 -90
- package/.gemini/agents/cpp-reviewer.md +0 -72
- package/.gemini/agents/csharp-reviewer.md +0 -101
- package/.gemini/agents/dart-build-resolver.md +0 -201
- package/.gemini/agents/database-reviewer.md +0 -91
- package/.gemini/agents/debug-detective.md +0 -410
- package/.gemini/agents/dependency-doctor.md +0 -121
- package/.gemini/agents/doc-updater.md +0 -107
- package/.gemini/agents/docs-lookup.md +0 -68
- package/.gemini/agents/e2e-runner.md +0 -107
- package/.gemini/agents/env-debugger.md +0 -154
- package/.gemini/agents/flake-hunter.md +0 -142
- package/.gemini/agents/flutter-reviewer.md +0 -243
- package/.gemini/agents/gan-evaluator.md +0 -209
- package/.gemini/agents/gan-generator.md +0 -131
- package/.gemini/agents/gan-planner.md +0 -99
- package/.gemini/agents/git-rescue.md +0 -133
- package/.gemini/agents/go-build-resolver.md +0 -94
- package/.gemini/agents/go-reviewer.md +0 -76
- package/.gemini/agents/harness-optimizer.md +0 -35
- package/.gemini/agents/healthcare-reviewer.md +0 -83
- package/.gemini/agents/image-architect.md +0 -190
- package/.gemini/agents/incident-commander.md +0 -228
- package/.gemini/agents/jailbreak-tester.md +0 -222
- package/.gemini/agents/java-build-resolver.md +0 -153
- package/.gemini/agents/java-reviewer.md +0 -92
- package/.gemini/agents/kodelyth-advisor.md +0 -172
- package/.gemini/agents/kodelyth-memory.md +0 -87
- package/.gemini/agents/kotlin-build-resolver.md +0 -118
- package/.gemini/agents/kotlin-reviewer.md +0 -159
- package/.gemini/agents/license-violation-finder.md +0 -212
- package/.gemini/agents/load-tester.md +0 -284
- package/.gemini/agents/loop-operator.md +0 -36
- package/.gemini/agents/migration-guide.md +0 -369
- package/.gemini/agents/opensource-forker.md +0 -198
- package/.gemini/agents/opensource-packager.md +0 -249
- package/.gemini/agents/opensource-sanitizer.md +0 -188
- package/.gemini/agents/pair-programmer.md +0 -261
- package/.gemini/agents/performance-optimizer.md +0 -446
- package/.gemini/agents/planner.md +0 -212
- package/.gemini/agents/pr-test-analyzer.md +0 -45
- package/.gemini/agents/prompt-injection-hunter.md +0 -126
- package/.gemini/agents/python-reviewer.md +0 -98
- package/.gemini/agents/pytorch-build-resolver.md +0 -120
- package/.gemini/agents/refactor-cleaner.md +0 -85
- package/.gemini/agents/release-captain.md +0 -226
- package/.gemini/agents/rust-build-resolver.md +0 -148
- package/.gemini/agents/rust-reviewer.md +0 -94
- package/.gemini/agents/secret-hunter.md +0 -209
- package/.gemini/agents/security-reviewer.md +0 -166
- package/.gemini/agents/seo-specialist.md +0 -62
- package/.gemini/agents/silent-failure-hunter.md +0 -50
- package/.gemini/agents/supply-chain-auditor.md +0 -195
- package/.gemini/agents/tdd-guide.md +0 -91
- package/.gemini/agents/type-design-analyzer.md +0 -41
- package/.gemini/agents/typescript-reviewer.md +0 -112
- package/.gemini/agents/ux-reviewer.md +0 -483
- package/.gemini/commands/terse-compress.md +0 -78
- package/.gemini/commands/terse.md +0 -40
- package/.gemini/rules/README.md +0 -108
- package/.gemini/rules/agent-intent-routing.md +0 -832
- package/.gemini/rules/agents.md +0 -50
- package/.gemini/rules/code-review.md +0 -124
- package/.gemini/rules/coding-style.md +0 -41
- package/.gemini/rules/cost-aware-model-routing.md +0 -152
- package/.gemini/rules/design-quality.md +0 -63
- package/.gemini/rules/development-workflow.md +0 -44
- package/.gemini/rules/git-workflow.md +0 -24
- package/.gemini/rules/hooks.md +0 -23
- package/.gemini/rules/memory-protocol.md +0 -87
- package/.gemini/rules/patterns.md +0 -71
- package/.gemini/rules/performance.md +0 -55
- package/.gemini/rules/security.md +0 -56
- package/.gemini/rules/self-improvement-workflow.md +0 -141
- package/.gemini/rules/shell-portability.md +0 -70
- package/.gemini/rules/testing.md +0 -65
- package/.gemini/skills/agent-eval/SKILL.md +0 -145
- package/.gemini/skills/agent-handoff/SKILL.md +0 -184
- package/.gemini/skills/agent-harness-construction/SKILL.md +0 -73
- package/.gemini/skills/agent-introspection-debugging/SKILL.md +0 -153
- package/.gemini/skills/agent-payment-x402/SKILL.md +0 -178
- package/.gemini/skills/agent-sort/SKILL.md +0 -215
- package/.gemini/skills/agentic-engineering/SKILL.md +0 -63
- package/.gemini/skills/ai-first-engineering/SKILL.md +0 -51
- package/.gemini/skills/ai-regression-testing/SKILL.md +0 -385
- package/.gemini/skills/android-clean-architecture/SKILL.md +0 -339
- package/.gemini/skills/api-connector-builder/SKILL.md +0 -121
- package/.gemini/skills/api-design/SKILL.md +0 -523
- package/.gemini/skills/architecture-decision-records/SKILL.md +0 -179
- package/.gemini/skills/article-writing/SKILL.md +0 -79
- package/.gemini/skills/automation-audit-ops/SKILL.md +0 -142
- package/.gemini/skills/autonomous-agent-harness/SKILL.md +0 -267
- package/.gemini/skills/autonomous-loops/SKILL.md +0 -610
- package/.gemini/skills/backend-patterns/SKILL.md +0 -598
- package/.gemini/skills/benchmark/SKILL.md +0 -93
- package/.gemini/skills/blueprint/SKILL.md +0 -105
- package/.gemini/skills/brand-voice/SKILL.md +0 -97
- package/.gemini/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/.gemini/skills/browser-qa/SKILL.md +0 -87
- package/.gemini/skills/bun-runtime/SKILL.md +0 -84
- package/.gemini/skills/canary-watch/SKILL.md +0 -99
- package/.gemini/skills/carrier-relationship-management/SKILL.md +0 -212
- package/.gemini/skills/ck/SKILL.md +0 -147
- package/.gemini/skills/ck/commands/forget.mjs +0 -44
- package/.gemini/skills/ck/commands/info.mjs +0 -24
- package/.gemini/skills/ck/commands/init.mjs +0 -143
- package/.gemini/skills/ck/commands/list.mjs +0 -40
- package/.gemini/skills/ck/commands/migrate.mjs +0 -202
- package/.gemini/skills/ck/commands/resume.mjs +0 -36
- package/.gemini/skills/ck/commands/save.mjs +0 -210
- package/.gemini/skills/ck/commands/shared.mjs +0 -387
- package/.gemini/skills/ck/hooks/session-start.mjs +0 -224
- package/.gemini/skills/claude-api/SKILL.md +0 -337
- package/.gemini/skills/claude-devfleet/SKILL.md +0 -103
- package/.gemini/skills/click-path-audit/SKILL.md +0 -244
- package/.gemini/skills/clickhouse-io/SKILL.md +0 -439
- package/.gemini/skills/code-tour/SKILL.md +0 -236
- package/.gemini/skills/codebase-onboarding/SKILL.md +0 -233
- package/.gemini/skills/coding-standards/SKILL.md +0 -549
- package/.gemini/skills/compose-multiplatform-patterns/SKILL.md +0 -299
- package/.gemini/skills/configure-ecc/SKILL.md +0 -367
- package/.gemini/skills/connections-optimizer/SKILL.md +0 -189
- package/.gemini/skills/content-engine/SKILL.md +0 -131
- package/.gemini/skills/content-hash-cache-pattern/SKILL.md +0 -161
- package/.gemini/skills/context-budget/SKILL.md +0 -135
- package/.gemini/skills/continuous-agent-loop/SKILL.md +0 -45
- package/.gemini/skills/continuous-learning/SKILL.md +0 -123
- package/.gemini/skills/continuous-learning/config.json +0 -18
- package/.gemini/skills/continuous-learning/evaluate-session.sh +0 -69
- package/.gemini/skills/continuous-learning-v2/SKILL.md +0 -365
- package/.gemini/skills/continuous-learning-v2/agents/observer-loop.sh +0 -271
- package/.gemini/skills/continuous-learning-v2/agents/observer.md +0 -198
- package/.gemini/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/.gemini/skills/continuous-learning-v2/agents/start-observer.sh +0 -244
- package/.gemini/skills/continuous-learning-v2/config.json +0 -8
- package/.gemini/skills/continuous-learning-v2/hooks/observe.sh +0 -428
- package/.gemini/skills/continuous-learning-v2/scripts/detect-project.sh +0 -228
- package/.gemini/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1426
- package/.gemini/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -984
- package/.gemini/skills/cost-aware-llm-pipeline/SKILL.md +0 -183
- package/.gemini/skills/cost-aware-model-routing/SKILL.md +0 -153
- package/.gemini/skills/council/SKILL.md +0 -203
- package/.gemini/skills/cpp-coding-standards/SKILL.md +0 -723
- package/.gemini/skills/cpp-testing/SKILL.md +0 -324
- package/.gemini/skills/crosspost/SKILL.md +0 -111
- package/.gemini/skills/csharp-testing/SKILL.md +0 -321
- package/.gemini/skills/customer-billing-ops/SKILL.md +0 -140
- package/.gemini/skills/customs-trade-compliance/SKILL.md +0 -263
- package/.gemini/skills/dart-flutter-patterns/SKILL.md +0 -563
- package/.gemini/skills/dashboard-builder/SKILL.md +0 -109
- package/.gemini/skills/data-scraper-agent/SKILL.md +0 -764
- package/.gemini/skills/database-migrations/SKILL.md +0 -429
- package/.gemini/skills/deep-research/SKILL.md +0 -155
- package/.gemini/skills/defi-amm-security/SKILL.md +0 -160
- package/.gemini/skills/deployment-patterns/SKILL.md +0 -427
- package/.gemini/skills/design-system/SKILL.md +0 -82
- package/.gemini/skills/django-patterns/SKILL.md +0 -734
- package/.gemini/skills/django-security/SKILL.md +0 -593
- package/.gemini/skills/django-tdd/SKILL.md +0 -729
- package/.gemini/skills/django-verification/SKILL.md +0 -469
- package/.gemini/skills/dmux-workflows/SKILL.md +0 -191
- package/.gemini/skills/docker-patterns/SKILL.md +0 -364
- package/.gemini/skills/documentation-lookup/SKILL.md +0 -90
- package/.gemini/skills/dotnet-patterns/SKILL.md +0 -321
- package/.gemini/skills/e2e-testing/SKILL.md +0 -326
- package/.gemini/skills/ecc-token-savings/SKILL.md +0 -106
- package/.gemini/skills/ecc-tools-cost-audit/SKILL.md +0 -160
- package/.gemini/skills/email-ops/SKILL.md +0 -121
- package/.gemini/skills/energy-procurement/SKILL.md +0 -228
- package/.gemini/skills/enterprise-agent-ops/SKILL.md +0 -50
- package/.gemini/skills/eval-harness/SKILL.md +0 -270
- package/.gemini/skills/evm-token-decimals/SKILL.md +0 -130
- package/.gemini/skills/exa-search/SKILL.md +0 -103
- package/.gemini/skills/fal-ai-media/SKILL.md +0 -284
- package/.gemini/skills/finance-billing-ops/SKILL.md +0 -127
- package/.gemini/skills/flutter-dart-code-review/SKILL.md +0 -435
- package/.gemini/skills/foundation-models-on-device/SKILL.md +0 -243
- package/.gemini/skills/frontend-design/SKILL.md +0 -145
- package/.gemini/skills/frontend-patterns/SKILL.md +0 -642
- package/.gemini/skills/frontend-slides/SKILL.md +0 -184
- package/.gemini/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.gemini/skills/gan-style-harness/SKILL.md +0 -278
- package/.gemini/skills/git-mastery/SKILL.md +0 -366
- package/.gemini/skills/git-workflow/SKILL.md +0 -715
- package/.gemini/skills/github-ops/SKILL.md +0 -144
- package/.gemini/skills/golang-patterns/SKILL.md +0 -674
- package/.gemini/skills/golang-testing/SKILL.md +0 -720
- package/.gemini/skills/google-workspace-ops/SKILL.md +0 -95
- package/.gemini/skills/healthcare-cdss-patterns/SKILL.md +0 -245
- package/.gemini/skills/healthcare-emr-patterns/SKILL.md +0 -159
- package/.gemini/skills/healthcare-eval-harness/SKILL.md +0 -207
- package/.gemini/skills/healthcare-phi-compliance/SKILL.md +0 -145
- package/.gemini/skills/hexagonal-architecture/SKILL.md +0 -276
- package/.gemini/skills/hipaa-compliance/SKILL.md +0 -78
- package/.gemini/skills/hookify-rules/SKILL.md +0 -128
- package/.gemini/skills/intent-routing/SKILL.md +0 -134
- package/.gemini/skills/inventory-demand-planning/SKILL.md +0 -247
- package/.gemini/skills/investor-materials/SKILL.md +0 -96
- package/.gemini/skills/investor-outreach/SKILL.md +0 -91
- package/.gemini/skills/iterative-retrieval/SKILL.md +0 -211
- package/.gemini/skills/java-coding-standards/SKILL.md +0 -147
- package/.gemini/skills/jira-integration/SKILL.md +0 -293
- package/.gemini/skills/jpa-patterns/SKILL.md +0 -151
- package/.gemini/skills/knowledge-ops/SKILL.md +0 -154
- package/.gemini/skills/kodelyth-memory/SKILL.md +0 -136
- package/.gemini/skills/kodelyth-quickstart/SKILL.md +0 -214
- package/.gemini/skills/kotlin-coroutines-flows/SKILL.md +0 -284
- package/.gemini/skills/kotlin-exposed-patterns/SKILL.md +0 -719
- package/.gemini/skills/kotlin-ktor-patterns/SKILL.md +0 -689
- package/.gemini/skills/kotlin-patterns/SKILL.md +0 -711
- package/.gemini/skills/kotlin-testing/SKILL.md +0 -824
- package/.gemini/skills/laravel-patterns/SKILL.md +0 -415
- package/.gemini/skills/laravel-plugin-discovery/SKILL.md +0 -229
- package/.gemini/skills/laravel-security/SKILL.md +0 -285
- package/.gemini/skills/laravel-tdd/SKILL.md +0 -283
- package/.gemini/skills/laravel-verification/SKILL.md +0 -179
- package/.gemini/skills/lead-intelligence/SKILL.md +0 -321
- package/.gemini/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/.gemini/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/.gemini/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/.gemini/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/.gemini/skills/liquid-glass-design/SKILL.md +0 -279
- package/.gemini/skills/llm-trading-agent-security/SKILL.md +0 -146
- package/.gemini/skills/logistics-exception-management/SKILL.md +0 -222
- package/.gemini/skills/manim-video/SKILL.md +0 -89
- package/.gemini/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/.gemini/skills/market-research/SKILL.md +0 -75
- package/.gemini/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.gemini/skills/messages-ops/SKILL.md +0 -104
- package/.gemini/skills/nanoclaw-repl/SKILL.md +0 -33
- package/.gemini/skills/nestjs-patterns/SKILL.md +0 -230
- package/.gemini/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.gemini/skills/nodejs-keccak256/SKILL.md +0 -102
- package/.gemini/skills/nutrient-document-processing/SKILL.md +0 -167
- package/.gemini/skills/nuxt4-patterns/SKILL.md +0 -100
- package/.gemini/skills/observability/SKILL.md +0 -390
- package/.gemini/skills/observability-dashboard/SKILL.md +0 -119
- package/.gemini/skills/openclaw-persona-forge/SKILL.md +0 -296
- package/.gemini/skills/openclaw-persona-forge/gacha.py +0 -224
- package/.gemini/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/.gemini/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/.gemini/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/.gemini/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/.gemini/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/.gemini/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/.gemini/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/.gemini/skills/opensource-pipeline/SKILL.md +0 -255
- package/.gemini/skills/perl-patterns/SKILL.md +0 -504
- package/.gemini/skills/perl-security/SKILL.md +0 -503
- package/.gemini/skills/perl-testing/SKILL.md +0 -475
- package/.gemini/skills/plankton-code-quality/SKILL.md +0 -236
- package/.gemini/skills/postgres-patterns/SKILL.md +0 -147
- package/.gemini/skills/product-capability/SKILL.md +0 -141
- package/.gemini/skills/product-lens/SKILL.md +0 -92
- package/.gemini/skills/production-scheduling/SKILL.md +0 -238
- package/.gemini/skills/project-flow-ops/SKILL.md +0 -111
- package/.gemini/skills/prompt-optimizer/SKILL.md +0 -397
- package/.gemini/skills/python-patterns/SKILL.md +0 -750
- package/.gemini/skills/python-testing/SKILL.md +0 -816
- package/.gemini/skills/pytorch-patterns/SKILL.md +0 -396
- package/.gemini/skills/quality-nonconformance/SKILL.md +0 -260
- package/.gemini/skills/ralphinho-rfc-pipeline/SKILL.md +0 -67
- package/.gemini/skills/regex-vs-llm-structured-text/SKILL.md +0 -220
- package/.gemini/skills/remotion-video-creation/SKILL.md +0 -43
- package/.gemini/skills/remotion-video-creation/rules/3d.md +0 -86
- package/.gemini/skills/remotion-video-creation/rules/animations.md +0 -29
- package/.gemini/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/.gemini/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.gemini/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.gemini/skills/remotion-video-creation/rules/assets.md +0 -78
- package/.gemini/skills/remotion-video-creation/rules/audio.md +0 -172
- package/.gemini/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/.gemini/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/.gemini/skills/remotion-video-creation/rules/charts.md +0 -58
- package/.gemini/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/.gemini/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/.gemini/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/.gemini/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/.gemini/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/.gemini/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/.gemini/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/.gemini/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/.gemini/skills/remotion-video-creation/rules/images.md +0 -130
- package/.gemini/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/.gemini/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/.gemini/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/.gemini/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/.gemini/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/.gemini/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/.gemini/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/.gemini/skills/remotion-video-creation/rules/timing.md +0 -179
- package/.gemini/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/.gemini/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/.gemini/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/.gemini/skills/remotion-video-creation/rules/videos.md +0 -171
- package/.gemini/skills/repo-scan/SKILL.md +0 -78
- package/.gemini/skills/research-ops/SKILL.md +0 -112
- package/.gemini/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/.gemini/skills/rules-distill/SKILL.md +0 -264
- package/.gemini/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/.gemini/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/.gemini/skills/rust-patterns/SKILL.md +0 -499
- package/.gemini/skills/rust-testing/SKILL.md +0 -500
- package/.gemini/skills/safety-guard/SKILL.md +0 -75
- package/.gemini/skills/santa-method/SKILL.md +0 -306
- package/.gemini/skills/search-first/SKILL.md +0 -161
- package/.gemini/skills/security-bounty-hunter/SKILL.md +0 -99
- package/.gemini/skills/security-review/SKILL.md +0 -495
- package/.gemini/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/.gemini/skills/security-scan/SKILL.md +0 -165
- package/.gemini/skills/self-evolving-memory/SKILL.md +0 -175
- package/.gemini/skills/seo/SKILL.md +0 -154
- package/.gemini/skills/session-replay/SKILL.md +0 -199
- package/.gemini/skills/skill-comply/SKILL.md +0 -58
- package/.gemini/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/.gemini/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/.gemini/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/.gemini/skills/skill-comply/prompts/classifier.md +0 -24
- package/.gemini/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/.gemini/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/.gemini/skills/skill-comply/pyproject.toml +0 -15
- package/.gemini/skills/skill-comply/scripts/__init__.py +0 -0
- package/.gemini/skills/skill-comply/scripts/classifier.py +0 -85
- package/.gemini/skills/skill-comply/scripts/grader.py +0 -122
- package/.gemini/skills/skill-comply/scripts/parser.py +0 -107
- package/.gemini/skills/skill-comply/scripts/report.py +0 -170
- package/.gemini/skills/skill-comply/scripts/run.py +0 -127
- package/.gemini/skills/skill-comply/scripts/runner.py +0 -161
- package/.gemini/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/.gemini/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/.gemini/skills/skill-comply/scripts/utils.py +0 -13
- package/.gemini/skills/skill-stocktake/SKILL.md +0 -193
- package/.gemini/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/.gemini/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/.gemini/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/.gemini/skills/smart-debug/SKILL.md +0 -241
- package/.gemini/skills/social-graph-ranker/SKILL.md +0 -154
- package/.gemini/skills/springboot-patterns/SKILL.md +0 -314
- package/.gemini/skills/springboot-security/SKILL.md +0 -272
- package/.gemini/skills/springboot-tdd/SKILL.md +0 -158
- package/.gemini/skills/springboot-verification/SKILL.md +0 -231
- package/.gemini/skills/strategic-compact/SKILL.md +0 -131
- package/.gemini/skills/strategic-compact/suggest-compact.sh +0 -54
- package/.gemini/skills/supply-chain-verification/SKILL.md +0 -201
- package/.gemini/skills/swarm-orchestrator/SKILL.md +0 -177
- package/.gemini/skills/swift-actor-persistence/SKILL.md +0 -143
- package/.gemini/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/.gemini/skills/swift-protocol-di-testing/SKILL.md +0 -190
- package/.gemini/skills/swiftui-patterns/SKILL.md +0 -259
- package/.gemini/skills/tdd-workflow/SKILL.md +0 -463
- package/.gemini/skills/team-builder/SKILL.md +0 -168
- package/.gemini/skills/terminal-ops/SKILL.md +0 -109
- package/.gemini/skills/terse-mode/SKILL.md +0 -97
- package/.gemini/skills/token-budget-advisor/SKILL.md +0 -133
- package/.gemini/skills/ui-demo/SKILL.md +0 -465
- package/.gemini/skills/unified-notifications-ops/SKILL.md +0 -187
- package/.gemini/skills/verification-loop/SKILL.md +0 -126
- package/.gemini/skills/video-editing/SKILL.md +0 -310
- package/.gemini/skills/videodb/SKILL.md +0 -374
- package/.gemini/skills/videodb/reference/api-reference.md +0 -550
- package/.gemini/skills/videodb/reference/capture-reference.md +0 -407
- package/.gemini/skills/videodb/reference/capture.md +0 -101
- package/.gemini/skills/videodb/reference/editor.md +0 -443
- package/.gemini/skills/videodb/reference/generative.md +0 -331
- package/.gemini/skills/videodb/reference/rtstream-reference.md +0 -564
- package/.gemini/skills/videodb/reference/rtstream.md +0 -65
- package/.gemini/skills/videodb/reference/search.md +0 -230
- package/.gemini/skills/videodb/reference/streaming.md +0 -406
- package/.gemini/skills/videodb/reference/use-cases.md +0 -118
- package/.gemini/skills/videodb/scripts/ws_listener.py +0 -282
- package/.gemini/skills/visa-doc-translate/README.md +0 -86
- package/.gemini/skills/visa-doc-translate/SKILL.md +0 -117
- package/.gemini/skills/workspace-surface-audit/SKILL.md +0 -125
- package/.gemini/skills/x-api/SKILL.md +0 -230
- package/.kimi/agents/api-guardian.md +0 -279
- package/.kimi/agents/architect.md +0 -211
- package/.kimi/agents/backdoor-hunter.md +0 -260
- package/.kimi/agents/build-error-resolver.md +0 -114
- package/.kimi/agents/chaos-engineer.md +0 -251
- package/.kimi/agents/chief-of-staff.md +0 -151
- package/.kimi/agents/code-architect.md +0 -71
- package/.kimi/agents/code-explorer.md +0 -69
- package/.kimi/agents/code-reviewer.md +0 -258
- package/.kimi/agents/code-simplifier.md +0 -47
- package/.kimi/agents/code-stealer-detector.md +0 -228
- package/.kimi/agents/comment-analyzer.md +0 -45
- package/.kimi/agents/conversation-analyzer.md +0 -52
- package/.kimi/agents/cpp-build-resolver.md +0 -90
- package/.kimi/agents/cpp-reviewer.md +0 -72
- package/.kimi/agents/csharp-reviewer.md +0 -101
- package/.kimi/agents/dart-build-resolver.md +0 -201
- package/.kimi/agents/database-reviewer.md +0 -91
- package/.kimi/agents/debug-detective.md +0 -410
- package/.kimi/agents/dependency-doctor.md +0 -121
- package/.kimi/agents/doc-updater.md +0 -107
- package/.kimi/agents/docs-lookup.md +0 -68
- package/.kimi/agents/e2e-runner.md +0 -107
- package/.kimi/agents/env-debugger.md +0 -154
- package/.kimi/agents/flake-hunter.md +0 -142
- package/.kimi/agents/flutter-reviewer.md +0 -243
- package/.kimi/agents/gan-evaluator.md +0 -209
- package/.kimi/agents/gan-generator.md +0 -131
- package/.kimi/agents/gan-planner.md +0 -99
- package/.kimi/agents/git-rescue.md +0 -133
- package/.kimi/agents/go-build-resolver.md +0 -94
- package/.kimi/agents/go-reviewer.md +0 -76
- package/.kimi/agents/harness-optimizer.md +0 -35
- package/.kimi/agents/healthcare-reviewer.md +0 -83
- package/.kimi/agents/image-architect.md +0 -190
- package/.kimi/agents/incident-commander.md +0 -228
- package/.kimi/agents/jailbreak-tester.md +0 -222
- package/.kimi/agents/java-build-resolver.md +0 -153
- package/.kimi/agents/java-reviewer.md +0 -92
- package/.kimi/agents/kodelyth-advisor.md +0 -172
- package/.kimi/agents/kodelyth-memory.md +0 -87
- package/.kimi/agents/kotlin-build-resolver.md +0 -118
- package/.kimi/agents/kotlin-reviewer.md +0 -159
- package/.kimi/agents/license-violation-finder.md +0 -212
- package/.kimi/agents/load-tester.md +0 -284
- package/.kimi/agents/loop-operator.md +0 -36
- package/.kimi/agents/migration-guide.md +0 -369
- package/.kimi/agents/opensource-forker.md +0 -198
- package/.kimi/agents/opensource-packager.md +0 -249
- package/.kimi/agents/opensource-sanitizer.md +0 -188
- package/.kimi/agents/pair-programmer.md +0 -261
- package/.kimi/agents/performance-optimizer.md +0 -446
- package/.kimi/agents/planner.md +0 -212
- package/.kimi/agents/pr-test-analyzer.md +0 -45
- package/.kimi/agents/prompt-injection-hunter.md +0 -126
- package/.kimi/agents/python-reviewer.md +0 -98
- package/.kimi/agents/pytorch-build-resolver.md +0 -120
- package/.kimi/agents/refactor-cleaner.md +0 -85
- package/.kimi/agents/release-captain.md +0 -226
- package/.kimi/agents/rust-build-resolver.md +0 -148
- package/.kimi/agents/rust-reviewer.md +0 -94
- package/.kimi/agents/secret-hunter.md +0 -209
- package/.kimi/agents/security-reviewer.md +0 -166
- package/.kimi/agents/seo-specialist.md +0 -62
- package/.kimi/agents/silent-failure-hunter.md +0 -50
- package/.kimi/agents/supply-chain-auditor.md +0 -195
- package/.kimi/agents/tdd-guide.md +0 -91
- package/.kimi/agents/type-design-analyzer.md +0 -41
- package/.kimi/agents/typescript-reviewer.md +0 -112
- package/.kimi/agents/ux-reviewer.md +0 -483
- package/.kimi/commands/agent-sort.md +0 -23
- package/.kimi/commands/arena.md +0 -136
- package/.kimi/commands/aside.md +0 -164
- package/.kimi/commands/build-fix.md +0 -66
- package/.kimi/commands/checkpoint.md +0 -79
- package/.kimi/commands/claw.md +0 -23
- package/.kimi/commands/code-review.md +0 -289
- package/.kimi/commands/context-budget.md +0 -23
- package/.kimi/commands/cpp-build.md +0 -173
- package/.kimi/commands/cpp-review.md +0 -132
- package/.kimi/commands/cpp-test.md +0 -251
- package/.kimi/commands/dashboard.md +0 -67
- package/.kimi/commands/debug-blitz.md +0 -70
- package/.kimi/commands/devfleet.md +0 -23
- package/.kimi/commands/devil-mode.md +0 -121
- package/.kimi/commands/docs.md +0 -23
- package/.kimi/commands/doctor.md +0 -75
- package/.kimi/commands/e2e.md +0 -268
- package/.kimi/commands/eval.md +0 -23
- package/.kimi/commands/evil-mode.md +0 -106
- package/.kimi/commands/evolve.md +0 -178
- package/.kimi/commands/feature-dev.md +0 -49
- package/.kimi/commands/flutter-build.md +0 -164
- package/.kimi/commands/flutter-review.md +0 -116
- package/.kimi/commands/flutter-test.md +0 -144
- package/.kimi/commands/gan-build.md +0 -104
- package/.kimi/commands/gan-design.md +0 -40
- package/.kimi/commands/go-build.md +0 -183
- package/.kimi/commands/go-review.md +0 -148
- package/.kimi/commands/go-test.md +0 -268
- package/.kimi/commands/god-mode.md +0 -85
- package/.kimi/commands/gradle-build.md +0 -70
- package/.kimi/commands/harness-audit.md +0 -77
- package/.kimi/commands/hookify-configure.md +0 -14
- package/.kimi/commands/hookify-help.md +0 -46
- package/.kimi/commands/hookify-list.md +0 -21
- package/.kimi/commands/hookify.md +0 -50
- package/.kimi/commands/immune.md +0 -89
- package/.kimi/commands/instinct-export.md +0 -66
- package/.kimi/commands/instinct-import.md +0 -114
- package/.kimi/commands/instinct-status.md +0 -59
- package/.kimi/commands/jira.md +0 -106
- package/.kimi/commands/kotlin-build.md +0 -174
- package/.kimi/commands/kotlin-review.md +0 -140
- package/.kimi/commands/kotlin-test.md +0 -312
- package/.kimi/commands/learn-eval.md +0 -116
- package/.kimi/commands/learn.md +0 -74
- package/.kimi/commands/lessons.md +0 -92
- package/.kimi/commands/loop-start.md +0 -37
- package/.kimi/commands/loop-status.md +0 -28
- package/.kimi/commands/memory-evolve.md +0 -71
- package/.kimi/commands/memory.md +0 -62
- package/.kimi/commands/model-route.md +0 -31
- package/.kimi/commands/multi-backend.md +0 -163
- package/.kimi/commands/multi-execute.md +0 -320
- package/.kimi/commands/multi-frontend.md +0 -163
- package/.kimi/commands/multi-plan.md +0 -273
- package/.kimi/commands/multi-workflow.md +0 -196
- package/.kimi/commands/onboard.md +0 -72
- package/.kimi/commands/orchestrate.md +0 -135
- package/.kimi/commands/plan.md +0 -117
- package/.kimi/commands/pm2.md +0 -277
- package/.kimi/commands/pre-release.md +0 -66
- package/.kimi/commands/project-launch.md +0 -91
- package/.kimi/commands/projects.md +0 -39
- package/.kimi/commands/promote.md +0 -41
- package/.kimi/commands/prompt-optimize.md +0 -23
- package/.kimi/commands/prp-commit.md +0 -112
- package/.kimi/commands/prp-implement.md +0 -385
- package/.kimi/commands/prp-plan.md +0 -502
- package/.kimi/commands/prp-pr.md +0 -184
- package/.kimi/commands/prp-prd.md +0 -447
- package/.kimi/commands/prune.md +0 -31
- package/.kimi/commands/python-review.md +0 -297
- package/.kimi/commands/quality-gate.md +0 -33
- package/.kimi/commands/refactor-clean.md +0 -84
- package/.kimi/commands/refactor-sprint.md +0 -77
- package/.kimi/commands/replay.md +0 -61
- package/.kimi/commands/resume-session.md +0 -156
- package/.kimi/commands/review-pr.md +0 -37
- package/.kimi/commands/route-model.md +0 -48
- package/.kimi/commands/rules-distill.md +0 -20
- package/.kimi/commands/rust-build.md +0 -187
- package/.kimi/commands/rust-review.md +0 -142
- package/.kimi/commands/rust-test.md +0 -308
- package/.kimi/commands/santa-loop.md +0 -175
- package/.kimi/commands/save-session.md +0 -275
- package/.kimi/commands/security-audit.md +0 -66
- package/.kimi/commands/sessions.md +0 -333
- package/.kimi/commands/setup-pm.md +0 -80
- package/.kimi/commands/skill-create.md +0 -174
- package/.kimi/commands/skill-health.md +0 -54
- package/.kimi/commands/swarm.md +0 -68
- package/.kimi/commands/tdd.md +0 -231
- package/.kimi/commands/team-review.md +0 -107
- package/.kimi/commands/terse-compress.md +0 -78
- package/.kimi/commands/terse.md +0 -40
- package/.kimi/commands/test-coverage.md +0 -73
- package/.kimi/commands/update-codemaps.md +0 -76
- package/.kimi/commands/update-docs.md +0 -88
- package/.kimi/commands/update.md +0 -92
- package/.kimi/commands/verify-supply-chain.md +0 -59
- package/.kimi/commands/verify.md +0 -23
- package/.kimi/rules/README.md +0 -108
- package/.kimi/rules/agent-intent-routing.md +0 -832
- package/.kimi/rules/agents.md +0 -50
- package/.kimi/rules/code-review.md +0 -124
- package/.kimi/rules/coding-style.md +0 -41
- package/.kimi/rules/cost-aware-model-routing.md +0 -152
- package/.kimi/rules/design-quality.md +0 -63
- package/.kimi/rules/development-workflow.md +0 -44
- package/.kimi/rules/git-workflow.md +0 -24
- package/.kimi/rules/hooks.md +0 -23
- package/.kimi/rules/memory-protocol.md +0 -87
- package/.kimi/rules/patterns.md +0 -71
- package/.kimi/rules/performance.md +0 -55
- package/.kimi/rules/security.md +0 -56
- package/.kimi/rules/self-improvement-workflow.md +0 -141
- package/.kimi/rules/shell-portability.md +0 -70
- package/.kimi/rules/testing.md +0 -65
- package/.kimi/skills/agent-eval/SKILL.md +0 -145
- package/.kimi/skills/agent-handoff/SKILL.md +0 -184
- package/.kimi/skills/agent-harness-construction/SKILL.md +0 -73
- package/.kimi/skills/agent-introspection-debugging/SKILL.md +0 -153
- package/.kimi/skills/agent-payment-x402/SKILL.md +0 -178
- package/.kimi/skills/agent-sort/SKILL.md +0 -215
- package/.kimi/skills/agentic-engineering/SKILL.md +0 -63
- package/.kimi/skills/ai-first-engineering/SKILL.md +0 -51
- package/.kimi/skills/ai-regression-testing/SKILL.md +0 -385
- package/.kimi/skills/android-clean-architecture/SKILL.md +0 -339
- package/.kimi/skills/api-connector-builder/SKILL.md +0 -121
- package/.kimi/skills/api-design/SKILL.md +0 -523
- package/.kimi/skills/architecture-decision-records/SKILL.md +0 -179
- package/.kimi/skills/article-writing/SKILL.md +0 -79
- package/.kimi/skills/automation-audit-ops/SKILL.md +0 -142
- package/.kimi/skills/autonomous-agent-harness/SKILL.md +0 -267
- package/.kimi/skills/autonomous-loops/SKILL.md +0 -610
- package/.kimi/skills/backend-patterns/SKILL.md +0 -598
- package/.kimi/skills/benchmark/SKILL.md +0 -93
- package/.kimi/skills/blueprint/SKILL.md +0 -105
- package/.kimi/skills/brand-voice/SKILL.md +0 -97
- package/.kimi/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/.kimi/skills/browser-qa/SKILL.md +0 -87
- package/.kimi/skills/bun-runtime/SKILL.md +0 -84
- package/.kimi/skills/canary-watch/SKILL.md +0 -99
- package/.kimi/skills/carrier-relationship-management/SKILL.md +0 -212
- package/.kimi/skills/ck/SKILL.md +0 -147
- package/.kimi/skills/ck/commands/forget.mjs +0 -44
- package/.kimi/skills/ck/commands/info.mjs +0 -24
- package/.kimi/skills/ck/commands/init.mjs +0 -143
- package/.kimi/skills/ck/commands/list.mjs +0 -40
- package/.kimi/skills/ck/commands/migrate.mjs +0 -202
- package/.kimi/skills/ck/commands/resume.mjs +0 -36
- package/.kimi/skills/ck/commands/save.mjs +0 -210
- package/.kimi/skills/ck/commands/shared.mjs +0 -387
- package/.kimi/skills/ck/hooks/session-start.mjs +0 -224
- package/.kimi/skills/claude-api/SKILL.md +0 -337
- package/.kimi/skills/claude-devfleet/SKILL.md +0 -103
- package/.kimi/skills/click-path-audit/SKILL.md +0 -244
- package/.kimi/skills/clickhouse-io/SKILL.md +0 -439
- package/.kimi/skills/code-tour/SKILL.md +0 -236
- package/.kimi/skills/codebase-onboarding/SKILL.md +0 -233
- package/.kimi/skills/coding-standards/SKILL.md +0 -549
- package/.kimi/skills/compose-multiplatform-patterns/SKILL.md +0 -299
- package/.kimi/skills/configure-ecc/SKILL.md +0 -367
- package/.kimi/skills/connections-optimizer/SKILL.md +0 -189
- package/.kimi/skills/content-engine/SKILL.md +0 -131
- package/.kimi/skills/content-hash-cache-pattern/SKILL.md +0 -161
- package/.kimi/skills/context-budget/SKILL.md +0 -135
- package/.kimi/skills/continuous-agent-loop/SKILL.md +0 -45
- package/.kimi/skills/continuous-learning/SKILL.md +0 -123
- package/.kimi/skills/continuous-learning/config.json +0 -18
- package/.kimi/skills/continuous-learning/evaluate-session.sh +0 -69
- package/.kimi/skills/continuous-learning-v2/SKILL.md +0 -365
- package/.kimi/skills/continuous-learning-v2/agents/observer-loop.sh +0 -271
- package/.kimi/skills/continuous-learning-v2/agents/observer.md +0 -198
- package/.kimi/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/.kimi/skills/continuous-learning-v2/agents/start-observer.sh +0 -244
- package/.kimi/skills/continuous-learning-v2/config.json +0 -8
- package/.kimi/skills/continuous-learning-v2/hooks/observe.sh +0 -428
- package/.kimi/skills/continuous-learning-v2/scripts/detect-project.sh +0 -228
- package/.kimi/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1426
- package/.kimi/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -984
- package/.kimi/skills/cost-aware-llm-pipeline/SKILL.md +0 -183
- package/.kimi/skills/cost-aware-model-routing/SKILL.md +0 -153
- package/.kimi/skills/council/SKILL.md +0 -203
- package/.kimi/skills/cpp-coding-standards/SKILL.md +0 -723
- package/.kimi/skills/cpp-testing/SKILL.md +0 -324
- package/.kimi/skills/crosspost/SKILL.md +0 -111
- package/.kimi/skills/csharp-testing/SKILL.md +0 -321
- package/.kimi/skills/customer-billing-ops/SKILL.md +0 -140
- package/.kimi/skills/customs-trade-compliance/SKILL.md +0 -263
- package/.kimi/skills/dart-flutter-patterns/SKILL.md +0 -563
- package/.kimi/skills/dashboard-builder/SKILL.md +0 -109
- package/.kimi/skills/data-scraper-agent/SKILL.md +0 -764
- package/.kimi/skills/database-migrations/SKILL.md +0 -429
- package/.kimi/skills/deep-research/SKILL.md +0 -155
- package/.kimi/skills/defi-amm-security/SKILL.md +0 -160
- package/.kimi/skills/deployment-patterns/SKILL.md +0 -427
- package/.kimi/skills/design-system/SKILL.md +0 -82
- package/.kimi/skills/django-patterns/SKILL.md +0 -734
- package/.kimi/skills/django-security/SKILL.md +0 -593
- package/.kimi/skills/django-tdd/SKILL.md +0 -729
- package/.kimi/skills/django-verification/SKILL.md +0 -469
- package/.kimi/skills/dmux-workflows/SKILL.md +0 -191
- package/.kimi/skills/docker-patterns/SKILL.md +0 -364
- package/.kimi/skills/documentation-lookup/SKILL.md +0 -90
- package/.kimi/skills/dotnet-patterns/SKILL.md +0 -321
- package/.kimi/skills/e2e-testing/SKILL.md +0 -326
- package/.kimi/skills/ecc-token-savings/SKILL.md +0 -106
- package/.kimi/skills/ecc-tools-cost-audit/SKILL.md +0 -160
- package/.kimi/skills/email-ops/SKILL.md +0 -121
- package/.kimi/skills/energy-procurement/SKILL.md +0 -228
- package/.kimi/skills/enterprise-agent-ops/SKILL.md +0 -50
- package/.kimi/skills/eval-harness/SKILL.md +0 -270
- package/.kimi/skills/evm-token-decimals/SKILL.md +0 -130
- package/.kimi/skills/exa-search/SKILL.md +0 -103
- package/.kimi/skills/fal-ai-media/SKILL.md +0 -284
- package/.kimi/skills/finance-billing-ops/SKILL.md +0 -127
- package/.kimi/skills/flutter-dart-code-review/SKILL.md +0 -435
- package/.kimi/skills/foundation-models-on-device/SKILL.md +0 -243
- package/.kimi/skills/frontend-design/SKILL.md +0 -145
- package/.kimi/skills/frontend-patterns/SKILL.md +0 -642
- package/.kimi/skills/frontend-slides/SKILL.md +0 -184
- package/.kimi/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.kimi/skills/gan-style-harness/SKILL.md +0 -278
- package/.kimi/skills/git-mastery/SKILL.md +0 -366
- package/.kimi/skills/git-workflow/SKILL.md +0 -715
- package/.kimi/skills/github-ops/SKILL.md +0 -144
- package/.kimi/skills/golang-patterns/SKILL.md +0 -674
- package/.kimi/skills/golang-testing/SKILL.md +0 -720
- package/.kimi/skills/google-workspace-ops/SKILL.md +0 -95
- package/.kimi/skills/healthcare-cdss-patterns/SKILL.md +0 -245
- package/.kimi/skills/healthcare-emr-patterns/SKILL.md +0 -159
- package/.kimi/skills/healthcare-eval-harness/SKILL.md +0 -207
- package/.kimi/skills/healthcare-phi-compliance/SKILL.md +0 -145
- package/.kimi/skills/hexagonal-architecture/SKILL.md +0 -276
- package/.kimi/skills/hipaa-compliance/SKILL.md +0 -78
- package/.kimi/skills/hookify-rules/SKILL.md +0 -128
- package/.kimi/skills/intent-routing/SKILL.md +0 -134
- package/.kimi/skills/inventory-demand-planning/SKILL.md +0 -247
- package/.kimi/skills/investor-materials/SKILL.md +0 -96
- package/.kimi/skills/investor-outreach/SKILL.md +0 -91
- package/.kimi/skills/iterative-retrieval/SKILL.md +0 -211
- package/.kimi/skills/java-coding-standards/SKILL.md +0 -147
- package/.kimi/skills/jira-integration/SKILL.md +0 -293
- package/.kimi/skills/jpa-patterns/SKILL.md +0 -151
- package/.kimi/skills/knowledge-ops/SKILL.md +0 -154
- package/.kimi/skills/kodelyth-memory/SKILL.md +0 -136
- package/.kimi/skills/kodelyth-quickstart/SKILL.md +0 -214
- package/.kimi/skills/kotlin-coroutines-flows/SKILL.md +0 -284
- package/.kimi/skills/kotlin-exposed-patterns/SKILL.md +0 -719
- package/.kimi/skills/kotlin-ktor-patterns/SKILL.md +0 -689
- package/.kimi/skills/kotlin-patterns/SKILL.md +0 -711
- package/.kimi/skills/kotlin-testing/SKILL.md +0 -824
- package/.kimi/skills/laravel-patterns/SKILL.md +0 -415
- package/.kimi/skills/laravel-plugin-discovery/SKILL.md +0 -229
- package/.kimi/skills/laravel-security/SKILL.md +0 -285
- package/.kimi/skills/laravel-tdd/SKILL.md +0 -283
- package/.kimi/skills/laravel-verification/SKILL.md +0 -179
- package/.kimi/skills/lead-intelligence/SKILL.md +0 -321
- package/.kimi/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/.kimi/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/.kimi/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/.kimi/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/.kimi/skills/liquid-glass-design/SKILL.md +0 -279
- package/.kimi/skills/llm-trading-agent-security/SKILL.md +0 -146
- package/.kimi/skills/logistics-exception-management/SKILL.md +0 -222
- package/.kimi/skills/manim-video/SKILL.md +0 -89
- package/.kimi/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/.kimi/skills/market-research/SKILL.md +0 -75
- package/.kimi/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.kimi/skills/messages-ops/SKILL.md +0 -104
- package/.kimi/skills/nanoclaw-repl/SKILL.md +0 -33
- package/.kimi/skills/nestjs-patterns/SKILL.md +0 -230
- package/.kimi/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.kimi/skills/nodejs-keccak256/SKILL.md +0 -102
- package/.kimi/skills/nutrient-document-processing/SKILL.md +0 -167
- package/.kimi/skills/nuxt4-patterns/SKILL.md +0 -100
- package/.kimi/skills/observability/SKILL.md +0 -390
- package/.kimi/skills/observability-dashboard/SKILL.md +0 -119
- package/.kimi/skills/openclaw-persona-forge/SKILL.md +0 -296
- package/.kimi/skills/openclaw-persona-forge/gacha.py +0 -224
- package/.kimi/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/.kimi/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/.kimi/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/.kimi/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/.kimi/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/.kimi/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/.kimi/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/.kimi/skills/opensource-pipeline/SKILL.md +0 -255
- package/.kimi/skills/perl-patterns/SKILL.md +0 -504
- package/.kimi/skills/perl-security/SKILL.md +0 -503
- package/.kimi/skills/perl-testing/SKILL.md +0 -475
- package/.kimi/skills/plankton-code-quality/SKILL.md +0 -236
- package/.kimi/skills/postgres-patterns/SKILL.md +0 -147
- package/.kimi/skills/product-capability/SKILL.md +0 -141
- package/.kimi/skills/product-lens/SKILL.md +0 -92
- package/.kimi/skills/production-scheduling/SKILL.md +0 -238
- package/.kimi/skills/project-flow-ops/SKILL.md +0 -111
- package/.kimi/skills/prompt-optimizer/SKILL.md +0 -397
- package/.kimi/skills/python-patterns/SKILL.md +0 -750
- package/.kimi/skills/python-testing/SKILL.md +0 -816
- package/.kimi/skills/pytorch-patterns/SKILL.md +0 -396
- package/.kimi/skills/quality-nonconformance/SKILL.md +0 -260
- package/.kimi/skills/ralphinho-rfc-pipeline/SKILL.md +0 -67
- package/.kimi/skills/regex-vs-llm-structured-text/SKILL.md +0 -220
- package/.kimi/skills/remotion-video-creation/SKILL.md +0 -43
- package/.kimi/skills/remotion-video-creation/rules/3d.md +0 -86
- package/.kimi/skills/remotion-video-creation/rules/animations.md +0 -29
- package/.kimi/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/.kimi/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.kimi/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.kimi/skills/remotion-video-creation/rules/assets.md +0 -78
- package/.kimi/skills/remotion-video-creation/rules/audio.md +0 -172
- package/.kimi/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/.kimi/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/.kimi/skills/remotion-video-creation/rules/charts.md +0 -58
- package/.kimi/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/.kimi/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/.kimi/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/.kimi/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/.kimi/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/.kimi/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/.kimi/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/.kimi/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/.kimi/skills/remotion-video-creation/rules/images.md +0 -130
- package/.kimi/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/.kimi/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/.kimi/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/.kimi/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/.kimi/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/.kimi/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/.kimi/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/.kimi/skills/remotion-video-creation/rules/timing.md +0 -179
- package/.kimi/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/.kimi/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/.kimi/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/.kimi/skills/remotion-video-creation/rules/videos.md +0 -171
- package/.kimi/skills/repo-scan/SKILL.md +0 -78
- package/.kimi/skills/research-ops/SKILL.md +0 -112
- package/.kimi/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/.kimi/skills/rules-distill/SKILL.md +0 -264
- package/.kimi/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/.kimi/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/.kimi/skills/rust-patterns/SKILL.md +0 -499
- package/.kimi/skills/rust-testing/SKILL.md +0 -500
- package/.kimi/skills/safety-guard/SKILL.md +0 -75
- package/.kimi/skills/santa-method/SKILL.md +0 -306
- package/.kimi/skills/search-first/SKILL.md +0 -161
- package/.kimi/skills/security-bounty-hunter/SKILL.md +0 -99
- package/.kimi/skills/security-review/SKILL.md +0 -495
- package/.kimi/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/.kimi/skills/security-scan/SKILL.md +0 -165
- package/.kimi/skills/self-evolving-memory/SKILL.md +0 -175
- package/.kimi/skills/seo/SKILL.md +0 -154
- package/.kimi/skills/session-replay/SKILL.md +0 -199
- package/.kimi/skills/skill-comply/SKILL.md +0 -58
- package/.kimi/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/.kimi/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/.kimi/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/.kimi/skills/skill-comply/prompts/classifier.md +0 -24
- package/.kimi/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/.kimi/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/.kimi/skills/skill-comply/pyproject.toml +0 -15
- package/.kimi/skills/skill-comply/scripts/__init__.py +0 -0
- package/.kimi/skills/skill-comply/scripts/classifier.py +0 -85
- package/.kimi/skills/skill-comply/scripts/grader.py +0 -122
- package/.kimi/skills/skill-comply/scripts/parser.py +0 -107
- package/.kimi/skills/skill-comply/scripts/report.py +0 -170
- package/.kimi/skills/skill-comply/scripts/run.py +0 -127
- package/.kimi/skills/skill-comply/scripts/runner.py +0 -161
- package/.kimi/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/.kimi/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/.kimi/skills/skill-comply/scripts/utils.py +0 -13
- package/.kimi/skills/skill-stocktake/SKILL.md +0 -193
- package/.kimi/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/.kimi/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/.kimi/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/.kimi/skills/smart-debug/SKILL.md +0 -241
- package/.kimi/skills/social-graph-ranker/SKILL.md +0 -154
- package/.kimi/skills/springboot-patterns/SKILL.md +0 -314
- package/.kimi/skills/springboot-security/SKILL.md +0 -272
- package/.kimi/skills/springboot-tdd/SKILL.md +0 -158
- package/.kimi/skills/springboot-verification/SKILL.md +0 -231
- package/.kimi/skills/strategic-compact/SKILL.md +0 -131
- package/.kimi/skills/strategic-compact/suggest-compact.sh +0 -54
- package/.kimi/skills/supply-chain-verification/SKILL.md +0 -201
- package/.kimi/skills/swarm-orchestrator/SKILL.md +0 -177
- package/.kimi/skills/swift-actor-persistence/SKILL.md +0 -143
- package/.kimi/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/.kimi/skills/swift-protocol-di-testing/SKILL.md +0 -190
- package/.kimi/skills/swiftui-patterns/SKILL.md +0 -259
- package/.kimi/skills/tdd-workflow/SKILL.md +0 -463
- package/.kimi/skills/team-builder/SKILL.md +0 -168
- package/.kimi/skills/terminal-ops/SKILL.md +0 -109
- package/.kimi/skills/terse-mode/SKILL.md +0 -97
- package/.kimi/skills/token-budget-advisor/SKILL.md +0 -133
- package/.kimi/skills/ui-demo/SKILL.md +0 -465
- package/.kimi/skills/unified-notifications-ops/SKILL.md +0 -187
- package/.kimi/skills/verification-loop/SKILL.md +0 -126
- package/.kimi/skills/video-editing/SKILL.md +0 -310
- package/.kimi/skills/videodb/SKILL.md +0 -374
- package/.kimi/skills/videodb/reference/api-reference.md +0 -550
- package/.kimi/skills/videodb/reference/capture-reference.md +0 -407
- package/.kimi/skills/videodb/reference/capture.md +0 -101
- package/.kimi/skills/videodb/reference/editor.md +0 -443
- package/.kimi/skills/videodb/reference/generative.md +0 -331
- package/.kimi/skills/videodb/reference/rtstream-reference.md +0 -564
- package/.kimi/skills/videodb/reference/rtstream.md +0 -65
- package/.kimi/skills/videodb/reference/search.md +0 -230
- package/.kimi/skills/videodb/reference/streaming.md +0 -406
- package/.kimi/skills/videodb/reference/use-cases.md +0 -118
- package/.kimi/skills/videodb/scripts/ws_listener.py +0 -282
- package/.kimi/skills/visa-doc-translate/README.md +0 -86
- package/.kimi/skills/visa-doc-translate/SKILL.md +0 -117
- package/.kimi/skills/workspace-surface-audit/SKILL.md +0 -125
- package/.kimi/skills/x-api/SKILL.md +0 -230
- package/.opencode/rules/README.md +0 -108
- package/.opencode/rules/agent-intent-routing.md +0 -832
- package/.opencode/rules/agents.md +0 -50
- package/.opencode/rules/code-review.md +0 -124
- package/.opencode/rules/coding-style.md +0 -41
- package/.opencode/rules/cost-aware-model-routing.md +0 -152
- package/.opencode/rules/design-quality.md +0 -63
- package/.opencode/rules/development-workflow.md +0 -44
- package/.opencode/rules/git-workflow.md +0 -24
- package/.opencode/rules/hooks.md +0 -23
- package/.opencode/rules/memory-protocol.md +0 -87
- package/.opencode/rules/patterns.md +0 -71
- package/.opencode/rules/performance.md +0 -55
- package/.opencode/rules/security.md +0 -56
- package/.opencode/rules/self-improvement-workflow.md +0 -141
- package/.opencode/rules/shell-portability.md +0 -70
- package/.opencode/rules/testing.md +0 -65
- package/.roo/agents/api-guardian.md +0 -279
- package/.roo/agents/architect.md +0 -211
- package/.roo/agents/backdoor-hunter.md +0 -260
- package/.roo/agents/build-error-resolver.md +0 -114
- package/.roo/agents/chaos-engineer.md +0 -251
- package/.roo/agents/chief-of-staff.md +0 -151
- package/.roo/agents/code-architect.md +0 -71
- package/.roo/agents/code-explorer.md +0 -69
- package/.roo/agents/code-reviewer.md +0 -258
- package/.roo/agents/code-simplifier.md +0 -47
- package/.roo/agents/code-stealer-detector.md +0 -228
- package/.roo/agents/comment-analyzer.md +0 -45
- package/.roo/agents/conversation-analyzer.md +0 -52
- package/.roo/agents/cpp-build-resolver.md +0 -90
- package/.roo/agents/cpp-reviewer.md +0 -72
- package/.roo/agents/csharp-reviewer.md +0 -101
- package/.roo/agents/dart-build-resolver.md +0 -201
- package/.roo/agents/database-reviewer.md +0 -91
- package/.roo/agents/debug-detective.md +0 -410
- package/.roo/agents/dependency-doctor.md +0 -121
- package/.roo/agents/doc-updater.md +0 -107
- package/.roo/agents/docs-lookup.md +0 -68
- package/.roo/agents/e2e-runner.md +0 -107
- package/.roo/agents/env-debugger.md +0 -154
- package/.roo/agents/flake-hunter.md +0 -142
- package/.roo/agents/flutter-reviewer.md +0 -243
- package/.roo/agents/gan-evaluator.md +0 -209
- package/.roo/agents/gan-generator.md +0 -131
- package/.roo/agents/gan-planner.md +0 -99
- package/.roo/agents/git-rescue.md +0 -133
- package/.roo/agents/go-build-resolver.md +0 -94
- package/.roo/agents/go-reviewer.md +0 -76
- package/.roo/agents/harness-optimizer.md +0 -35
- package/.roo/agents/healthcare-reviewer.md +0 -83
- package/.roo/agents/image-architect.md +0 -190
- package/.roo/agents/incident-commander.md +0 -228
- package/.roo/agents/jailbreak-tester.md +0 -222
- package/.roo/agents/java-build-resolver.md +0 -153
- package/.roo/agents/java-reviewer.md +0 -92
- package/.roo/agents/kodelyth-advisor.md +0 -172
- package/.roo/agents/kodelyth-memory.md +0 -87
- package/.roo/agents/kotlin-build-resolver.md +0 -118
- package/.roo/agents/kotlin-reviewer.md +0 -159
- package/.roo/agents/license-violation-finder.md +0 -212
- package/.roo/agents/load-tester.md +0 -284
- package/.roo/agents/loop-operator.md +0 -36
- package/.roo/agents/migration-guide.md +0 -369
- package/.roo/agents/opensource-forker.md +0 -198
- package/.roo/agents/opensource-packager.md +0 -249
- package/.roo/agents/opensource-sanitizer.md +0 -188
- package/.roo/agents/pair-programmer.md +0 -261
- package/.roo/agents/performance-optimizer.md +0 -446
- package/.roo/agents/planner.md +0 -212
- package/.roo/agents/pr-test-analyzer.md +0 -45
- package/.roo/agents/prompt-injection-hunter.md +0 -126
- package/.roo/agents/python-reviewer.md +0 -98
- package/.roo/agents/pytorch-build-resolver.md +0 -120
- package/.roo/agents/refactor-cleaner.md +0 -85
- package/.roo/agents/release-captain.md +0 -226
- package/.roo/agents/rust-build-resolver.md +0 -148
- package/.roo/agents/rust-reviewer.md +0 -94
- package/.roo/agents/secret-hunter.md +0 -209
- package/.roo/agents/security-reviewer.md +0 -166
- package/.roo/agents/seo-specialist.md +0 -62
- package/.roo/agents/silent-failure-hunter.md +0 -50
- package/.roo/agents/supply-chain-auditor.md +0 -195
- package/.roo/agents/tdd-guide.md +0 -91
- package/.roo/agents/type-design-analyzer.md +0 -41
- package/.roo/agents/typescript-reviewer.md +0 -112
- package/.roo/agents/ux-reviewer.md +0 -483
- package/.roo/commands/agent-sort.md +0 -23
- package/.roo/commands/arena.md +0 -136
- package/.roo/commands/aside.md +0 -164
- package/.roo/commands/build-fix.md +0 -66
- package/.roo/commands/checkpoint.md +0 -79
- package/.roo/commands/claw.md +0 -23
- package/.roo/commands/code-review.md +0 -289
- package/.roo/commands/context-budget.md +0 -23
- package/.roo/commands/cpp-build.md +0 -173
- package/.roo/commands/cpp-review.md +0 -132
- package/.roo/commands/cpp-test.md +0 -251
- package/.roo/commands/dashboard.md +0 -67
- package/.roo/commands/debug-blitz.md +0 -70
- package/.roo/commands/devfleet.md +0 -23
- package/.roo/commands/devil-mode.md +0 -121
- package/.roo/commands/docs.md +0 -23
- package/.roo/commands/doctor.md +0 -75
- package/.roo/commands/e2e.md +0 -268
- package/.roo/commands/eval.md +0 -23
- package/.roo/commands/evil-mode.md +0 -106
- package/.roo/commands/evolve.md +0 -178
- package/.roo/commands/feature-dev.md +0 -49
- package/.roo/commands/flutter-build.md +0 -164
- package/.roo/commands/flutter-review.md +0 -116
- package/.roo/commands/flutter-test.md +0 -144
- package/.roo/commands/gan-build.md +0 -104
- package/.roo/commands/gan-design.md +0 -40
- package/.roo/commands/go-build.md +0 -183
- package/.roo/commands/go-review.md +0 -148
- package/.roo/commands/go-test.md +0 -268
- package/.roo/commands/god-mode.md +0 -85
- package/.roo/commands/gradle-build.md +0 -70
- package/.roo/commands/harness-audit.md +0 -77
- package/.roo/commands/hookify-configure.md +0 -14
- package/.roo/commands/hookify-help.md +0 -46
- package/.roo/commands/hookify-list.md +0 -21
- package/.roo/commands/hookify.md +0 -50
- package/.roo/commands/immune.md +0 -89
- package/.roo/commands/instinct-export.md +0 -66
- package/.roo/commands/instinct-import.md +0 -114
- package/.roo/commands/instinct-status.md +0 -59
- package/.roo/commands/jira.md +0 -106
- package/.roo/commands/kotlin-build.md +0 -174
- package/.roo/commands/kotlin-review.md +0 -140
- package/.roo/commands/kotlin-test.md +0 -312
- package/.roo/commands/learn-eval.md +0 -116
- package/.roo/commands/learn.md +0 -74
- package/.roo/commands/lessons.md +0 -92
- package/.roo/commands/loop-start.md +0 -37
- package/.roo/commands/loop-status.md +0 -28
- package/.roo/commands/memory-evolve.md +0 -71
- package/.roo/commands/memory.md +0 -62
- package/.roo/commands/model-route.md +0 -31
- package/.roo/commands/multi-backend.md +0 -163
- package/.roo/commands/multi-execute.md +0 -320
- package/.roo/commands/multi-frontend.md +0 -163
- package/.roo/commands/multi-plan.md +0 -273
- package/.roo/commands/multi-workflow.md +0 -196
- package/.roo/commands/onboard.md +0 -72
- package/.roo/commands/orchestrate.md +0 -135
- package/.roo/commands/plan.md +0 -117
- package/.roo/commands/pm2.md +0 -277
- package/.roo/commands/pre-release.md +0 -66
- package/.roo/commands/project-launch.md +0 -91
- package/.roo/commands/projects.md +0 -39
- package/.roo/commands/promote.md +0 -41
- package/.roo/commands/prompt-optimize.md +0 -23
- package/.roo/commands/prp-commit.md +0 -112
- package/.roo/commands/prp-implement.md +0 -385
- package/.roo/commands/prp-plan.md +0 -502
- package/.roo/commands/prp-pr.md +0 -184
- package/.roo/commands/prp-prd.md +0 -447
- package/.roo/commands/prune.md +0 -31
- package/.roo/commands/python-review.md +0 -297
- package/.roo/commands/quality-gate.md +0 -33
- package/.roo/commands/refactor-clean.md +0 -84
- package/.roo/commands/refactor-sprint.md +0 -77
- package/.roo/commands/replay.md +0 -61
- package/.roo/commands/resume-session.md +0 -156
- package/.roo/commands/review-pr.md +0 -37
- package/.roo/commands/route-model.md +0 -48
- package/.roo/commands/rules-distill.md +0 -20
- package/.roo/commands/rust-build.md +0 -187
- package/.roo/commands/rust-review.md +0 -142
- package/.roo/commands/rust-test.md +0 -308
- package/.roo/commands/santa-loop.md +0 -175
- package/.roo/commands/save-session.md +0 -275
- package/.roo/commands/security-audit.md +0 -66
- package/.roo/commands/sessions.md +0 -333
- package/.roo/commands/setup-pm.md +0 -80
- package/.roo/commands/skill-create.md +0 -174
- package/.roo/commands/skill-health.md +0 -54
- package/.roo/commands/swarm.md +0 -68
- package/.roo/commands/tdd.md +0 -231
- package/.roo/commands/team-review.md +0 -107
- package/.roo/commands/terse-compress.md +0 -78
- package/.roo/commands/terse.md +0 -40
- package/.roo/commands/test-coverage.md +0 -73
- package/.roo/commands/update-codemaps.md +0 -76
- package/.roo/commands/update-docs.md +0 -88
- package/.roo/commands/update.md +0 -92
- package/.roo/commands/verify-supply-chain.md +0 -59
- package/.roo/commands/verify.md +0 -23
- package/.roo/rules/README.md +0 -108
- package/.roo/rules/agent-intent-routing.md +0 -832
- package/.roo/rules/agents.md +0 -50
- package/.roo/rules/code-review.md +0 -124
- package/.roo/rules/coding-style.md +0 -41
- package/.roo/rules/cost-aware-model-routing.md +0 -152
- package/.roo/rules/design-quality.md +0 -63
- package/.roo/rules/development-workflow.md +0 -44
- package/.roo/rules/git-workflow.md +0 -24
- package/.roo/rules/hooks.md +0 -23
- package/.roo/rules/memory-protocol.md +0 -87
- package/.roo/rules/patterns.md +0 -71
- package/.roo/rules/performance.md +0 -55
- package/.roo/rules/security.md +0 -56
- package/.roo/rules/self-improvement-workflow.md +0 -141
- package/.roo/rules/shell-portability.md +0 -70
- package/.roo/rules/testing.md +0 -65
- package/.roo/skills/agent-eval/SKILL.md +0 -145
- package/.roo/skills/agent-handoff/SKILL.md +0 -184
- package/.roo/skills/agent-harness-construction/SKILL.md +0 -73
- package/.roo/skills/agent-introspection-debugging/SKILL.md +0 -153
- package/.roo/skills/agent-payment-x402/SKILL.md +0 -178
- package/.roo/skills/agent-sort/SKILL.md +0 -215
- package/.roo/skills/agentic-engineering/SKILL.md +0 -63
- package/.roo/skills/ai-first-engineering/SKILL.md +0 -51
- package/.roo/skills/ai-regression-testing/SKILL.md +0 -385
- package/.roo/skills/android-clean-architecture/SKILL.md +0 -339
- package/.roo/skills/api-connector-builder/SKILL.md +0 -121
- package/.roo/skills/api-design/SKILL.md +0 -523
- package/.roo/skills/architecture-decision-records/SKILL.md +0 -179
- package/.roo/skills/article-writing/SKILL.md +0 -79
- package/.roo/skills/automation-audit-ops/SKILL.md +0 -142
- package/.roo/skills/autonomous-agent-harness/SKILL.md +0 -267
- package/.roo/skills/autonomous-loops/SKILL.md +0 -610
- package/.roo/skills/backend-patterns/SKILL.md +0 -598
- package/.roo/skills/benchmark/SKILL.md +0 -93
- package/.roo/skills/blueprint/SKILL.md +0 -105
- package/.roo/skills/brand-voice/SKILL.md +0 -97
- package/.roo/skills/brand-voice/references/voice-profile-schema.md +0 -55
- package/.roo/skills/browser-qa/SKILL.md +0 -87
- package/.roo/skills/bun-runtime/SKILL.md +0 -84
- package/.roo/skills/canary-watch/SKILL.md +0 -99
- package/.roo/skills/carrier-relationship-management/SKILL.md +0 -212
- package/.roo/skills/ck/SKILL.md +0 -147
- package/.roo/skills/ck/commands/forget.mjs +0 -44
- package/.roo/skills/ck/commands/info.mjs +0 -24
- package/.roo/skills/ck/commands/init.mjs +0 -143
- package/.roo/skills/ck/commands/list.mjs +0 -40
- package/.roo/skills/ck/commands/migrate.mjs +0 -202
- package/.roo/skills/ck/commands/resume.mjs +0 -36
- package/.roo/skills/ck/commands/save.mjs +0 -210
- package/.roo/skills/ck/commands/shared.mjs +0 -387
- package/.roo/skills/ck/hooks/session-start.mjs +0 -224
- package/.roo/skills/claude-api/SKILL.md +0 -337
- package/.roo/skills/claude-devfleet/SKILL.md +0 -103
- package/.roo/skills/click-path-audit/SKILL.md +0 -244
- package/.roo/skills/clickhouse-io/SKILL.md +0 -439
- package/.roo/skills/code-tour/SKILL.md +0 -236
- package/.roo/skills/codebase-onboarding/SKILL.md +0 -233
- package/.roo/skills/coding-standards/SKILL.md +0 -549
- package/.roo/skills/compose-multiplatform-patterns/SKILL.md +0 -299
- package/.roo/skills/configure-ecc/SKILL.md +0 -367
- package/.roo/skills/connections-optimizer/SKILL.md +0 -189
- package/.roo/skills/content-engine/SKILL.md +0 -131
- package/.roo/skills/content-hash-cache-pattern/SKILL.md +0 -161
- package/.roo/skills/context-budget/SKILL.md +0 -135
- package/.roo/skills/continuous-agent-loop/SKILL.md +0 -45
- package/.roo/skills/continuous-learning/SKILL.md +0 -123
- package/.roo/skills/continuous-learning/config.json +0 -18
- package/.roo/skills/continuous-learning/evaluate-session.sh +0 -69
- package/.roo/skills/continuous-learning-v2/SKILL.md +0 -365
- package/.roo/skills/continuous-learning-v2/agents/observer-loop.sh +0 -271
- package/.roo/skills/continuous-learning-v2/agents/observer.md +0 -198
- package/.roo/skills/continuous-learning-v2/agents/session-guardian.sh +0 -150
- package/.roo/skills/continuous-learning-v2/agents/start-observer.sh +0 -244
- package/.roo/skills/continuous-learning-v2/config.json +0 -8
- package/.roo/skills/continuous-learning-v2/hooks/observe.sh +0 -428
- package/.roo/skills/continuous-learning-v2/scripts/detect-project.sh +0 -228
- package/.roo/skills/continuous-learning-v2/scripts/instinct-cli.py +0 -1426
- package/.roo/skills/continuous-learning-v2/scripts/test_parse_instinct.py +0 -984
- package/.roo/skills/cost-aware-llm-pipeline/SKILL.md +0 -183
- package/.roo/skills/cost-aware-model-routing/SKILL.md +0 -153
- package/.roo/skills/council/SKILL.md +0 -203
- package/.roo/skills/cpp-coding-standards/SKILL.md +0 -723
- package/.roo/skills/cpp-testing/SKILL.md +0 -324
- package/.roo/skills/crosspost/SKILL.md +0 -111
- package/.roo/skills/csharp-testing/SKILL.md +0 -321
- package/.roo/skills/customer-billing-ops/SKILL.md +0 -140
- package/.roo/skills/customs-trade-compliance/SKILL.md +0 -263
- package/.roo/skills/dart-flutter-patterns/SKILL.md +0 -563
- package/.roo/skills/dashboard-builder/SKILL.md +0 -109
- package/.roo/skills/data-scraper-agent/SKILL.md +0 -764
- package/.roo/skills/database-migrations/SKILL.md +0 -429
- package/.roo/skills/deep-research/SKILL.md +0 -155
- package/.roo/skills/defi-amm-security/SKILL.md +0 -160
- package/.roo/skills/deployment-patterns/SKILL.md +0 -427
- package/.roo/skills/design-system/SKILL.md +0 -82
- package/.roo/skills/django-patterns/SKILL.md +0 -734
- package/.roo/skills/django-security/SKILL.md +0 -593
- package/.roo/skills/django-tdd/SKILL.md +0 -729
- package/.roo/skills/django-verification/SKILL.md +0 -469
- package/.roo/skills/dmux-workflows/SKILL.md +0 -191
- package/.roo/skills/docker-patterns/SKILL.md +0 -364
- package/.roo/skills/documentation-lookup/SKILL.md +0 -90
- package/.roo/skills/dotnet-patterns/SKILL.md +0 -321
- package/.roo/skills/e2e-testing/SKILL.md +0 -326
- package/.roo/skills/ecc-token-savings/SKILL.md +0 -106
- package/.roo/skills/ecc-tools-cost-audit/SKILL.md +0 -160
- package/.roo/skills/email-ops/SKILL.md +0 -121
- package/.roo/skills/energy-procurement/SKILL.md +0 -228
- package/.roo/skills/enterprise-agent-ops/SKILL.md +0 -50
- package/.roo/skills/eval-harness/SKILL.md +0 -270
- package/.roo/skills/evm-token-decimals/SKILL.md +0 -130
- package/.roo/skills/exa-search/SKILL.md +0 -103
- package/.roo/skills/fal-ai-media/SKILL.md +0 -284
- package/.roo/skills/finance-billing-ops/SKILL.md +0 -127
- package/.roo/skills/flutter-dart-code-review/SKILL.md +0 -435
- package/.roo/skills/foundation-models-on-device/SKILL.md +0 -243
- package/.roo/skills/frontend-design/SKILL.md +0 -145
- package/.roo/skills/frontend-patterns/SKILL.md +0 -642
- package/.roo/skills/frontend-slides/SKILL.md +0 -184
- package/.roo/skills/frontend-slides/STYLE_PRESETS.md +0 -330
- package/.roo/skills/gan-style-harness/SKILL.md +0 -278
- package/.roo/skills/git-mastery/SKILL.md +0 -366
- package/.roo/skills/git-workflow/SKILL.md +0 -715
- package/.roo/skills/github-ops/SKILL.md +0 -144
- package/.roo/skills/golang-patterns/SKILL.md +0 -674
- package/.roo/skills/golang-testing/SKILL.md +0 -720
- package/.roo/skills/google-workspace-ops/SKILL.md +0 -95
- package/.roo/skills/healthcare-cdss-patterns/SKILL.md +0 -245
- package/.roo/skills/healthcare-emr-patterns/SKILL.md +0 -159
- package/.roo/skills/healthcare-eval-harness/SKILL.md +0 -207
- package/.roo/skills/healthcare-phi-compliance/SKILL.md +0 -145
- package/.roo/skills/hexagonal-architecture/SKILL.md +0 -276
- package/.roo/skills/hipaa-compliance/SKILL.md +0 -78
- package/.roo/skills/hookify-rules/SKILL.md +0 -128
- package/.roo/skills/intent-routing/SKILL.md +0 -134
- package/.roo/skills/inventory-demand-planning/SKILL.md +0 -247
- package/.roo/skills/investor-materials/SKILL.md +0 -96
- package/.roo/skills/investor-outreach/SKILL.md +0 -91
- package/.roo/skills/iterative-retrieval/SKILL.md +0 -211
- package/.roo/skills/java-coding-standards/SKILL.md +0 -147
- package/.roo/skills/jira-integration/SKILL.md +0 -293
- package/.roo/skills/jpa-patterns/SKILL.md +0 -151
- package/.roo/skills/knowledge-ops/SKILL.md +0 -154
- package/.roo/skills/kodelyth-memory/SKILL.md +0 -136
- package/.roo/skills/kodelyth-quickstart/SKILL.md +0 -214
- package/.roo/skills/kotlin-coroutines-flows/SKILL.md +0 -284
- package/.roo/skills/kotlin-exposed-patterns/SKILL.md +0 -719
- package/.roo/skills/kotlin-ktor-patterns/SKILL.md +0 -689
- package/.roo/skills/kotlin-patterns/SKILL.md +0 -711
- package/.roo/skills/kotlin-testing/SKILL.md +0 -824
- package/.roo/skills/laravel-patterns/SKILL.md +0 -415
- package/.roo/skills/laravel-plugin-discovery/SKILL.md +0 -229
- package/.roo/skills/laravel-security/SKILL.md +0 -285
- package/.roo/skills/laravel-tdd/SKILL.md +0 -283
- package/.roo/skills/laravel-verification/SKILL.md +0 -179
- package/.roo/skills/lead-intelligence/SKILL.md +0 -321
- package/.roo/skills/lead-intelligence/agents/enrichment-agent.md +0 -85
- package/.roo/skills/lead-intelligence/agents/mutual-mapper.md +0 -75
- package/.roo/skills/lead-intelligence/agents/outreach-drafter.md +0 -98
- package/.roo/skills/lead-intelligence/agents/signal-scorer.md +0 -60
- package/.roo/skills/liquid-glass-design/SKILL.md +0 -279
- package/.roo/skills/llm-trading-agent-security/SKILL.md +0 -146
- package/.roo/skills/logistics-exception-management/SKILL.md +0 -222
- package/.roo/skills/manim-video/SKILL.md +0 -89
- package/.roo/skills/manim-video/assets/network_graph_scene.py +0 -52
- package/.roo/skills/market-research/SKILL.md +0 -75
- package/.roo/skills/mcp-server-patterns/SKILL.md +0 -67
- package/.roo/skills/messages-ops/SKILL.md +0 -104
- package/.roo/skills/nanoclaw-repl/SKILL.md +0 -33
- package/.roo/skills/nestjs-patterns/SKILL.md +0 -230
- package/.roo/skills/nextjs-turbopack/SKILL.md +0 -44
- package/.roo/skills/nodejs-keccak256/SKILL.md +0 -102
- package/.roo/skills/nutrient-document-processing/SKILL.md +0 -167
- package/.roo/skills/nuxt4-patterns/SKILL.md +0 -100
- package/.roo/skills/observability/SKILL.md +0 -390
- package/.roo/skills/observability-dashboard/SKILL.md +0 -119
- package/.roo/skills/openclaw-persona-forge/SKILL.md +0 -296
- package/.roo/skills/openclaw-persona-forge/gacha.py +0 -224
- package/.roo/skills/openclaw-persona-forge/gacha.sh +0 -5
- package/.roo/skills/openclaw-persona-forge/references/avatar-style.md +0 -124
- package/.roo/skills/openclaw-persona-forge/references/boundary-rules.md +0 -53
- package/.roo/skills/openclaw-persona-forge/references/error-handling.md +0 -53
- package/.roo/skills/openclaw-persona-forge/references/identity-tension.md +0 -48
- package/.roo/skills/openclaw-persona-forge/references/naming-system.md +0 -39
- package/.roo/skills/openclaw-persona-forge/references/output-template.md +0 -166
- package/.roo/skills/opensource-pipeline/SKILL.md +0 -255
- package/.roo/skills/perl-patterns/SKILL.md +0 -504
- package/.roo/skills/perl-security/SKILL.md +0 -503
- package/.roo/skills/perl-testing/SKILL.md +0 -475
- package/.roo/skills/plankton-code-quality/SKILL.md +0 -236
- package/.roo/skills/postgres-patterns/SKILL.md +0 -147
- package/.roo/skills/product-capability/SKILL.md +0 -141
- package/.roo/skills/product-lens/SKILL.md +0 -92
- package/.roo/skills/production-scheduling/SKILL.md +0 -238
- package/.roo/skills/project-flow-ops/SKILL.md +0 -111
- package/.roo/skills/prompt-optimizer/SKILL.md +0 -397
- package/.roo/skills/python-patterns/SKILL.md +0 -750
- package/.roo/skills/python-testing/SKILL.md +0 -816
- package/.roo/skills/pytorch-patterns/SKILL.md +0 -396
- package/.roo/skills/quality-nonconformance/SKILL.md +0 -260
- package/.roo/skills/ralphinho-rfc-pipeline/SKILL.md +0 -67
- package/.roo/skills/regex-vs-llm-structured-text/SKILL.md +0 -220
- package/.roo/skills/remotion-video-creation/SKILL.md +0 -43
- package/.roo/skills/remotion-video-creation/rules/3d.md +0 -86
- package/.roo/skills/remotion-video-creation/rules/animations.md +0 -29
- package/.roo/skills/remotion-video-creation/rules/assets/charts-bar-chart.tsx +0 -173
- package/.roo/skills/remotion-video-creation/rules/assets/text-animations-typewriter.tsx +0 -100
- package/.roo/skills/remotion-video-creation/rules/assets/text-animations-word-highlight.tsx +0 -108
- package/.roo/skills/remotion-video-creation/rules/assets.md +0 -78
- package/.roo/skills/remotion-video-creation/rules/audio.md +0 -172
- package/.roo/skills/remotion-video-creation/rules/calculate-metadata.md +0 -104
- package/.roo/skills/remotion-video-creation/rules/can-decode.md +0 -75
- package/.roo/skills/remotion-video-creation/rules/charts.md +0 -58
- package/.roo/skills/remotion-video-creation/rules/compositions.md +0 -146
- package/.roo/skills/remotion-video-creation/rules/display-captions.md +0 -126
- package/.roo/skills/remotion-video-creation/rules/extract-frames.md +0 -229
- package/.roo/skills/remotion-video-creation/rules/fonts.md +0 -152
- package/.roo/skills/remotion-video-creation/rules/get-audio-duration.md +0 -58
- package/.roo/skills/remotion-video-creation/rules/get-video-dimensions.md +0 -68
- package/.roo/skills/remotion-video-creation/rules/get-video-duration.md +0 -58
- package/.roo/skills/remotion-video-creation/rules/gifs.md +0 -138
- package/.roo/skills/remotion-video-creation/rules/images.md +0 -130
- package/.roo/skills/remotion-video-creation/rules/import-srt-captions.md +0 -67
- package/.roo/skills/remotion-video-creation/rules/lottie.md +0 -67
- package/.roo/skills/remotion-video-creation/rules/measuring-dom-nodes.md +0 -34
- package/.roo/skills/remotion-video-creation/rules/measuring-text.md +0 -143
- package/.roo/skills/remotion-video-creation/rules/sequencing.md +0 -106
- package/.roo/skills/remotion-video-creation/rules/tailwind.md +0 -11
- package/.roo/skills/remotion-video-creation/rules/text-animations.md +0 -20
- package/.roo/skills/remotion-video-creation/rules/timing.md +0 -179
- package/.roo/skills/remotion-video-creation/rules/transcribe-captions.md +0 -19
- package/.roo/skills/remotion-video-creation/rules/transitions.md +0 -122
- package/.roo/skills/remotion-video-creation/rules/trimming.md +0 -52
- package/.roo/skills/remotion-video-creation/rules/videos.md +0 -171
- package/.roo/skills/repo-scan/SKILL.md +0 -78
- package/.roo/skills/research-ops/SKILL.md +0 -112
- package/.roo/skills/returns-reverse-logistics/SKILL.md +0 -240
- package/.roo/skills/rules-distill/SKILL.md +0 -264
- package/.roo/skills/rules-distill/scripts/scan-rules.sh +0 -58
- package/.roo/skills/rules-distill/scripts/scan-skills.sh +0 -129
- package/.roo/skills/rust-patterns/SKILL.md +0 -499
- package/.roo/skills/rust-testing/SKILL.md +0 -500
- package/.roo/skills/safety-guard/SKILL.md +0 -75
- package/.roo/skills/santa-method/SKILL.md +0 -306
- package/.roo/skills/search-first/SKILL.md +0 -161
- package/.roo/skills/security-bounty-hunter/SKILL.md +0 -99
- package/.roo/skills/security-review/SKILL.md +0 -495
- package/.roo/skills/security-review/cloud-infrastructure-security.md +0 -361
- package/.roo/skills/security-scan/SKILL.md +0 -165
- package/.roo/skills/self-evolving-memory/SKILL.md +0 -175
- package/.roo/skills/seo/SKILL.md +0 -154
- package/.roo/skills/session-replay/SKILL.md +0 -199
- package/.roo/skills/skill-comply/SKILL.md +0 -58
- package/.roo/skills/skill-comply/fixtures/compliant_trace.jsonl +0 -5
- package/.roo/skills/skill-comply/fixtures/noncompliant_trace.jsonl +0 -3
- package/.roo/skills/skill-comply/fixtures/tdd_spec.yaml +0 -44
- package/.roo/skills/skill-comply/prompts/classifier.md +0 -24
- package/.roo/skills/skill-comply/prompts/scenario_generator.md +0 -62
- package/.roo/skills/skill-comply/prompts/spec_generator.md +0 -42
- package/.roo/skills/skill-comply/pyproject.toml +0 -15
- package/.roo/skills/skill-comply/scripts/__init__.py +0 -0
- package/.roo/skills/skill-comply/scripts/classifier.py +0 -85
- package/.roo/skills/skill-comply/scripts/grader.py +0 -122
- package/.roo/skills/skill-comply/scripts/parser.py +0 -107
- package/.roo/skills/skill-comply/scripts/report.py +0 -170
- package/.roo/skills/skill-comply/scripts/run.py +0 -127
- package/.roo/skills/skill-comply/scripts/runner.py +0 -161
- package/.roo/skills/skill-comply/scripts/scenario_generator.py +0 -70
- package/.roo/skills/skill-comply/scripts/spec_generator.py +0 -72
- package/.roo/skills/skill-comply/scripts/utils.py +0 -13
- package/.roo/skills/skill-stocktake/SKILL.md +0 -193
- package/.roo/skills/skill-stocktake/scripts/quick-diff.sh +0 -87
- package/.roo/skills/skill-stocktake/scripts/save-results.sh +0 -56
- package/.roo/skills/skill-stocktake/scripts/scan.sh +0 -170
- package/.roo/skills/smart-debug/SKILL.md +0 -241
- package/.roo/skills/social-graph-ranker/SKILL.md +0 -154
- package/.roo/skills/springboot-patterns/SKILL.md +0 -314
- package/.roo/skills/springboot-security/SKILL.md +0 -272
- package/.roo/skills/springboot-tdd/SKILL.md +0 -158
- package/.roo/skills/springboot-verification/SKILL.md +0 -231
- package/.roo/skills/strategic-compact/SKILL.md +0 -131
- package/.roo/skills/strategic-compact/suggest-compact.sh +0 -54
- package/.roo/skills/supply-chain-verification/SKILL.md +0 -201
- package/.roo/skills/swarm-orchestrator/SKILL.md +0 -177
- package/.roo/skills/swift-actor-persistence/SKILL.md +0 -143
- package/.roo/skills/swift-concurrency-6-2/SKILL.md +0 -216
- package/.roo/skills/swift-protocol-di-testing/SKILL.md +0 -190
- package/.roo/skills/swiftui-patterns/SKILL.md +0 -259
- package/.roo/skills/tdd-workflow/SKILL.md +0 -463
- package/.roo/skills/team-builder/SKILL.md +0 -168
- package/.roo/skills/terminal-ops/SKILL.md +0 -109
- package/.roo/skills/terse-mode/SKILL.md +0 -97
- package/.roo/skills/token-budget-advisor/SKILL.md +0 -133
- package/.roo/skills/ui-demo/SKILL.md +0 -465
- package/.roo/skills/unified-notifications-ops/SKILL.md +0 -187
- package/.roo/skills/verification-loop/SKILL.md +0 -126
- package/.roo/skills/video-editing/SKILL.md +0 -310
- package/.roo/skills/videodb/SKILL.md +0 -374
- package/.roo/skills/videodb/reference/api-reference.md +0 -550
- package/.roo/skills/videodb/reference/capture-reference.md +0 -407
- package/.roo/skills/videodb/reference/capture.md +0 -101
- package/.roo/skills/videodb/reference/editor.md +0 -443
- package/.roo/skills/videodb/reference/generative.md +0 -331
- package/.roo/skills/videodb/reference/rtstream-reference.md +0 -564
- package/.roo/skills/videodb/reference/rtstream.md +0 -65
- package/.roo/skills/videodb/reference/search.md +0 -230
- package/.roo/skills/videodb/reference/streaming.md +0 -406
- package/.roo/skills/videodb/reference/use-cases.md +0 -118
- package/.roo/skills/videodb/scripts/ws_listener.py +0 -282
- package/.roo/skills/visa-doc-translate/README.md +0 -86
- package/.roo/skills/visa-doc-translate/SKILL.md +0 -117
- package/.roo/skills/workspace-surface-audit/SKILL.md +0 -125
- package/.roo/skills/x-api/SKILL.md +0 -230
- package/.windsurfrules +0 -32
- package/CONVENTIONS.md +0 -23
|
@@ -1,1426 +0,0 @@
|
|
|
1
|
-
#!/usr/bin/env python3
|
|
2
|
-
"""
|
|
3
|
-
Instinct CLI - Manage instincts for Continuous Learning v2
|
|
4
|
-
|
|
5
|
-
v2.1: Project-scoped instincts — different projects get different instincts,
|
|
6
|
-
with global instincts applied universally.
|
|
7
|
-
|
|
8
|
-
Commands:
|
|
9
|
-
status - Show all instincts (project + global) and their status
|
|
10
|
-
import - Import instincts from file or URL
|
|
11
|
-
export - Export instincts to file
|
|
12
|
-
evolve - Cluster instincts into skills/commands/agents
|
|
13
|
-
promote - Promote project instincts to global scope
|
|
14
|
-
projects - List all known projects and their instinct counts
|
|
15
|
-
prune - Delete pending instincts older than 30 days (TTL)
|
|
16
|
-
"""
|
|
17
|
-
|
|
18
|
-
import argparse
|
|
19
|
-
import json
|
|
20
|
-
import hashlib
|
|
21
|
-
import os
|
|
22
|
-
import subprocess
|
|
23
|
-
import sys
|
|
24
|
-
import re
|
|
25
|
-
import urllib.request
|
|
26
|
-
from pathlib import Path
|
|
27
|
-
from datetime import datetime, timedelta, timezone
|
|
28
|
-
from collections import defaultdict
|
|
29
|
-
from typing import Optional
|
|
30
|
-
|
|
31
|
-
try:
|
|
32
|
-
import fcntl
|
|
33
|
-
_HAS_FCNTL = True
|
|
34
|
-
except ImportError:
|
|
35
|
-
_HAS_FCNTL = False # Windows — skip file locking
|
|
36
|
-
|
|
37
|
-
# ─────────────────────────────────────────────
|
|
38
|
-
# Configuration
|
|
39
|
-
# ─────────────────────────────────────────────
|
|
40
|
-
|
|
41
|
-
HOMUNCULUS_DIR = Path.home() / ".claude" / "homunculus"
|
|
42
|
-
PROJECTS_DIR = HOMUNCULUS_DIR / "projects"
|
|
43
|
-
REGISTRY_FILE = HOMUNCULUS_DIR / "projects.json"
|
|
44
|
-
|
|
45
|
-
# Global (non-project-scoped) paths
|
|
46
|
-
GLOBAL_INSTINCTS_DIR = HOMUNCULUS_DIR / "instincts"
|
|
47
|
-
GLOBAL_PERSONAL_DIR = GLOBAL_INSTINCTS_DIR / "personal"
|
|
48
|
-
GLOBAL_INHERITED_DIR = GLOBAL_INSTINCTS_DIR / "inherited"
|
|
49
|
-
GLOBAL_EVOLVED_DIR = HOMUNCULUS_DIR / "evolved"
|
|
50
|
-
GLOBAL_OBSERVATIONS_FILE = HOMUNCULUS_DIR / "observations.jsonl"
|
|
51
|
-
|
|
52
|
-
# Thresholds for auto-promotion
|
|
53
|
-
PROMOTE_CONFIDENCE_THRESHOLD = 0.8
|
|
54
|
-
PROMOTE_MIN_PROJECTS = 2
|
|
55
|
-
ALLOWED_INSTINCT_EXTENSIONS = (".yaml", ".yml", ".md")
|
|
56
|
-
|
|
57
|
-
# Default TTL for pending instincts (days)
|
|
58
|
-
PENDING_TTL_DAYS = 30
|
|
59
|
-
# Warning threshold: show expiry warning when instinct expires within this many days
|
|
60
|
-
PENDING_EXPIRY_WARNING_DAYS = 7
|
|
61
|
-
|
|
62
|
-
# Ensure global directories exist (deferred to avoid side effects at import time)
|
|
63
|
-
def _ensure_global_dirs():
|
|
64
|
-
for d in [GLOBAL_PERSONAL_DIR, GLOBAL_INHERITED_DIR,
|
|
65
|
-
GLOBAL_EVOLVED_DIR / "skills", GLOBAL_EVOLVED_DIR / "commands", GLOBAL_EVOLVED_DIR / "agents",
|
|
66
|
-
PROJECTS_DIR]:
|
|
67
|
-
d.mkdir(parents=True, exist_ok=True)
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
# ─────────────────────────────────────────────
|
|
71
|
-
# Path Validation
|
|
72
|
-
# ─────────────────────────────────────────────
|
|
73
|
-
|
|
74
|
-
def _validate_file_path(path_str: str, must_exist: bool = False) -> Path:
|
|
75
|
-
"""Validate and resolve a file path, guarding against path traversal.
|
|
76
|
-
|
|
77
|
-
Raises ValueError if the path is invalid or suspicious.
|
|
78
|
-
"""
|
|
79
|
-
path = Path(path_str).expanduser().resolve()
|
|
80
|
-
|
|
81
|
-
# Block paths that escape into system directories
|
|
82
|
-
# We block specific system paths but allow temp dirs (/var/folders on macOS)
|
|
83
|
-
blocked_prefixes = [
|
|
84
|
-
"/etc", "/usr", "/bin", "/sbin", "/proc", "/sys",
|
|
85
|
-
"/var/log", "/var/run", "/var/lib", "/var/spool",
|
|
86
|
-
# macOS resolves /etc → /private/etc
|
|
87
|
-
"/private/etc",
|
|
88
|
-
"/private/var/log", "/private/var/run", "/private/var/db",
|
|
89
|
-
]
|
|
90
|
-
path_s = str(path)
|
|
91
|
-
for prefix in blocked_prefixes:
|
|
92
|
-
if path_s.startswith(prefix + "/") or path_s == prefix:
|
|
93
|
-
raise ValueError(f"Path '{path}' targets a system directory")
|
|
94
|
-
|
|
95
|
-
if must_exist and not path.exists():
|
|
96
|
-
raise ValueError(f"Path does not exist: {path}")
|
|
97
|
-
|
|
98
|
-
return path
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
def _validate_instinct_id(instinct_id: str) -> bool:
|
|
102
|
-
"""Validate instinct IDs before using them in filenames."""
|
|
103
|
-
if not instinct_id or len(instinct_id) > 128:
|
|
104
|
-
return False
|
|
105
|
-
if "/" in instinct_id or "\\" in instinct_id:
|
|
106
|
-
return False
|
|
107
|
-
if ".." in instinct_id:
|
|
108
|
-
return False
|
|
109
|
-
if instinct_id.startswith("."):
|
|
110
|
-
return False
|
|
111
|
-
return bool(re.match(r"^[A-Za-z0-9][A-Za-z0-9._-]*$", instinct_id))
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
def _yaml_quote(value: str) -> str:
|
|
115
|
-
"""Quote a string for safe YAML frontmatter serialization.
|
|
116
|
-
|
|
117
|
-
Uses double quotes and escapes embedded double-quote characters to
|
|
118
|
-
prevent malformed YAML when the value contains quotes.
|
|
119
|
-
"""
|
|
120
|
-
escaped = value.replace('\\', '\\\\').replace('"', '\\"')
|
|
121
|
-
return f'"{escaped}"'
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
# ─────────────────────────────────────────────
|
|
125
|
-
# Project Detection (Python equivalent of detect-project.sh)
|
|
126
|
-
# ─────────────────────────────────────────────
|
|
127
|
-
|
|
128
|
-
def detect_project() -> dict:
|
|
129
|
-
"""Detect current project context. Returns dict with id, name, root, project_dir."""
|
|
130
|
-
project_root = None
|
|
131
|
-
|
|
132
|
-
# 1. CLAUDE_PROJECT_DIR env var
|
|
133
|
-
env_dir = os.environ.get("CLAUDE_PROJECT_DIR")
|
|
134
|
-
if env_dir and os.path.isdir(env_dir):
|
|
135
|
-
project_root = env_dir
|
|
136
|
-
|
|
137
|
-
# 2. git repo root
|
|
138
|
-
if not project_root:
|
|
139
|
-
try:
|
|
140
|
-
result = subprocess.run(
|
|
141
|
-
["git", "rev-parse", "--show-toplevel"],
|
|
142
|
-
capture_output=True, text=True, timeout=5
|
|
143
|
-
)
|
|
144
|
-
if result.returncode == 0:
|
|
145
|
-
project_root = result.stdout.strip()
|
|
146
|
-
except (subprocess.TimeoutExpired, FileNotFoundError):
|
|
147
|
-
pass
|
|
148
|
-
|
|
149
|
-
# Normalize: strip trailing slashes to keep basename and hash stable
|
|
150
|
-
if project_root:
|
|
151
|
-
project_root = project_root.rstrip("/")
|
|
152
|
-
|
|
153
|
-
# 3. No project — global fallback
|
|
154
|
-
if not project_root:
|
|
155
|
-
return {
|
|
156
|
-
"id": "global",
|
|
157
|
-
"name": "global",
|
|
158
|
-
"root": "",
|
|
159
|
-
"project_dir": HOMUNCULUS_DIR,
|
|
160
|
-
"instincts_personal": GLOBAL_PERSONAL_DIR,
|
|
161
|
-
"instincts_inherited": GLOBAL_INHERITED_DIR,
|
|
162
|
-
"evolved_dir": GLOBAL_EVOLVED_DIR,
|
|
163
|
-
"observations_file": GLOBAL_OBSERVATIONS_FILE,
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
project_name = os.path.basename(project_root)
|
|
167
|
-
|
|
168
|
-
# Derive project ID from git remote URL or path
|
|
169
|
-
remote_url = ""
|
|
170
|
-
try:
|
|
171
|
-
result = subprocess.run(
|
|
172
|
-
["git", "-C", project_root, "remote", "get-url", "origin"],
|
|
173
|
-
capture_output=True, text=True, timeout=5
|
|
174
|
-
)
|
|
175
|
-
if result.returncode == 0:
|
|
176
|
-
remote_url = result.stdout.strip()
|
|
177
|
-
except (subprocess.TimeoutExpired, FileNotFoundError):
|
|
178
|
-
pass
|
|
179
|
-
|
|
180
|
-
hash_source = remote_url if remote_url else project_root
|
|
181
|
-
project_id = hashlib.sha256(hash_source.encode()).hexdigest()[:12]
|
|
182
|
-
|
|
183
|
-
project_dir = PROJECTS_DIR / project_id
|
|
184
|
-
|
|
185
|
-
# Ensure project directory structure
|
|
186
|
-
for d in [
|
|
187
|
-
project_dir / "instincts" / "personal",
|
|
188
|
-
project_dir / "instincts" / "inherited",
|
|
189
|
-
project_dir / "observations.archive",
|
|
190
|
-
project_dir / "evolved" / "skills",
|
|
191
|
-
project_dir / "evolved" / "commands",
|
|
192
|
-
project_dir / "evolved" / "agents",
|
|
193
|
-
]:
|
|
194
|
-
d.mkdir(parents=True, exist_ok=True)
|
|
195
|
-
|
|
196
|
-
# Update registry
|
|
197
|
-
_update_registry(project_id, project_name, project_root, remote_url)
|
|
198
|
-
|
|
199
|
-
return {
|
|
200
|
-
"id": project_id,
|
|
201
|
-
"name": project_name,
|
|
202
|
-
"root": project_root,
|
|
203
|
-
"remote": remote_url,
|
|
204
|
-
"project_dir": project_dir,
|
|
205
|
-
"instincts_personal": project_dir / "instincts" / "personal",
|
|
206
|
-
"instincts_inherited": project_dir / "instincts" / "inherited",
|
|
207
|
-
"evolved_dir": project_dir / "evolved",
|
|
208
|
-
"observations_file": project_dir / "observations.jsonl",
|
|
209
|
-
}
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
def _update_registry(pid: str, pname: str, proot: str, premote: str) -> None:
|
|
213
|
-
"""Update the projects.json registry.
|
|
214
|
-
|
|
215
|
-
Uses file locking (where available) to prevent concurrent sessions from
|
|
216
|
-
overwriting each other's updates.
|
|
217
|
-
"""
|
|
218
|
-
REGISTRY_FILE.parent.mkdir(parents=True, exist_ok=True)
|
|
219
|
-
lock_path = REGISTRY_FILE.parent / f".{REGISTRY_FILE.name}.lock"
|
|
220
|
-
lock_fd = None
|
|
221
|
-
|
|
222
|
-
try:
|
|
223
|
-
# Acquire advisory lock to serialize read-modify-write
|
|
224
|
-
if _HAS_FCNTL:
|
|
225
|
-
lock_fd = open(lock_path, "w")
|
|
226
|
-
fcntl.flock(lock_fd, fcntl.LOCK_EX)
|
|
227
|
-
|
|
228
|
-
try:
|
|
229
|
-
with open(REGISTRY_FILE, encoding="utf-8") as f:
|
|
230
|
-
registry = json.load(f)
|
|
231
|
-
except (FileNotFoundError, json.JSONDecodeError):
|
|
232
|
-
registry = {}
|
|
233
|
-
|
|
234
|
-
registry[pid] = {
|
|
235
|
-
"name": pname,
|
|
236
|
-
"root": proot,
|
|
237
|
-
"remote": premote,
|
|
238
|
-
"last_seen": datetime.now(timezone.utc).isoformat().replace("+00:00", "Z"),
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
tmp_file = REGISTRY_FILE.parent / f".{REGISTRY_FILE.name}.tmp.{os.getpid()}"
|
|
242
|
-
with open(tmp_file, "w", encoding="utf-8") as f:
|
|
243
|
-
json.dump(registry, f, indent=2)
|
|
244
|
-
f.flush()
|
|
245
|
-
os.fsync(f.fileno())
|
|
246
|
-
os.replace(tmp_file, REGISTRY_FILE)
|
|
247
|
-
finally:
|
|
248
|
-
if lock_fd is not None:
|
|
249
|
-
fcntl.flock(lock_fd, fcntl.LOCK_UN)
|
|
250
|
-
lock_fd.close()
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
def load_registry() -> dict:
|
|
254
|
-
"""Load the projects registry."""
|
|
255
|
-
try:
|
|
256
|
-
with open(REGISTRY_FILE, encoding="utf-8") as f:
|
|
257
|
-
return json.load(f)
|
|
258
|
-
except (FileNotFoundError, json.JSONDecodeError):
|
|
259
|
-
return {}
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
# ─────────────────────────────────────────────
|
|
263
|
-
# Instinct Parser
|
|
264
|
-
# ─────────────────────────────────────────────
|
|
265
|
-
|
|
266
|
-
def parse_instinct_file(content: str) -> list[dict]:
|
|
267
|
-
"""Parse YAML-like instinct file format.
|
|
268
|
-
|
|
269
|
-
Each instinct is delimited by a pair of ``---`` markers (YAML frontmatter).
|
|
270
|
-
Note: ``---`` is always treated as a frontmatter boundary; instinct body
|
|
271
|
-
content must use ``***`` or ``___`` for horizontal rules to avoid ambiguity.
|
|
272
|
-
"""
|
|
273
|
-
instincts = []
|
|
274
|
-
current = {}
|
|
275
|
-
in_frontmatter = False
|
|
276
|
-
content_lines = []
|
|
277
|
-
|
|
278
|
-
for line in content.split('\n'):
|
|
279
|
-
if line.strip() == '---':
|
|
280
|
-
if in_frontmatter:
|
|
281
|
-
# End of frontmatter - content comes next
|
|
282
|
-
in_frontmatter = False
|
|
283
|
-
else:
|
|
284
|
-
# Start of new frontmatter block
|
|
285
|
-
in_frontmatter = True
|
|
286
|
-
if current:
|
|
287
|
-
current['content'] = '\n'.join(content_lines).strip()
|
|
288
|
-
instincts.append(current)
|
|
289
|
-
current = {}
|
|
290
|
-
content_lines = []
|
|
291
|
-
elif in_frontmatter:
|
|
292
|
-
# Parse YAML-like frontmatter
|
|
293
|
-
if ':' in line:
|
|
294
|
-
key, value = line.split(':', 1)
|
|
295
|
-
key = key.strip()
|
|
296
|
-
value = value.strip()
|
|
297
|
-
# Unescape quoted YAML strings
|
|
298
|
-
if value.startswith('"') and value.endswith('"'):
|
|
299
|
-
value = value[1:-1].replace('\\"', '"').replace('\\\\', '\\')
|
|
300
|
-
elif value.startswith("'") and value.endswith("'"):
|
|
301
|
-
value = value[1:-1].replace("''", "'")
|
|
302
|
-
if key == 'confidence':
|
|
303
|
-
try:
|
|
304
|
-
current[key] = float(value)
|
|
305
|
-
except ValueError:
|
|
306
|
-
current[key] = 0.5 # default on malformed confidence
|
|
307
|
-
else:
|
|
308
|
-
current[key] = value
|
|
309
|
-
else:
|
|
310
|
-
content_lines.append(line)
|
|
311
|
-
|
|
312
|
-
# Don't forget the last instinct
|
|
313
|
-
if current:
|
|
314
|
-
current['content'] = '\n'.join(content_lines).strip()
|
|
315
|
-
instincts.append(current)
|
|
316
|
-
|
|
317
|
-
return [i for i in instincts if i.get('id')]
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
def _load_instincts_from_dir(directory: Path, source_type: str, scope_label: str) -> list[dict]:
|
|
321
|
-
"""Load instincts from a single directory."""
|
|
322
|
-
instincts = []
|
|
323
|
-
if not directory.exists():
|
|
324
|
-
return instincts
|
|
325
|
-
files = [
|
|
326
|
-
file for file in sorted(directory.iterdir())
|
|
327
|
-
if file.is_file() and file.suffix.lower() in ALLOWED_INSTINCT_EXTENSIONS
|
|
328
|
-
]
|
|
329
|
-
for file in files:
|
|
330
|
-
try:
|
|
331
|
-
content = file.read_text(encoding="utf-8")
|
|
332
|
-
parsed = parse_instinct_file(content)
|
|
333
|
-
for inst in parsed:
|
|
334
|
-
inst['_source_file'] = str(file)
|
|
335
|
-
inst['_source_type'] = source_type
|
|
336
|
-
inst['_scope_label'] = scope_label
|
|
337
|
-
# Default scope if not set in frontmatter
|
|
338
|
-
if 'scope' not in inst:
|
|
339
|
-
inst['scope'] = scope_label
|
|
340
|
-
instincts.extend(parsed)
|
|
341
|
-
except Exception as e:
|
|
342
|
-
print(f"Warning: Failed to parse {file}: {e}", file=sys.stderr)
|
|
343
|
-
return instincts
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
def load_all_instincts(project: dict, include_global: bool = True) -> list[dict]:
|
|
347
|
-
"""Load all instincts: project-scoped + global.
|
|
348
|
-
|
|
349
|
-
Project-scoped instincts take precedence over global ones when IDs conflict.
|
|
350
|
-
"""
|
|
351
|
-
instincts = []
|
|
352
|
-
|
|
353
|
-
# 1. Load project-scoped instincts (if not already global)
|
|
354
|
-
if project["id"] != "global":
|
|
355
|
-
instincts.extend(_load_instincts_from_dir(
|
|
356
|
-
project["instincts_personal"], "personal", "project"
|
|
357
|
-
))
|
|
358
|
-
instincts.extend(_load_instincts_from_dir(
|
|
359
|
-
project["instincts_inherited"], "inherited", "project"
|
|
360
|
-
))
|
|
361
|
-
|
|
362
|
-
# 2. Load global instincts
|
|
363
|
-
if include_global:
|
|
364
|
-
global_instincts = []
|
|
365
|
-
global_instincts.extend(_load_instincts_from_dir(
|
|
366
|
-
GLOBAL_PERSONAL_DIR, "personal", "global"
|
|
367
|
-
))
|
|
368
|
-
global_instincts.extend(_load_instincts_from_dir(
|
|
369
|
-
GLOBAL_INHERITED_DIR, "inherited", "global"
|
|
370
|
-
))
|
|
371
|
-
|
|
372
|
-
# Deduplicate: project-scoped wins over global when same ID
|
|
373
|
-
project_ids = {i.get('id') for i in instincts}
|
|
374
|
-
for gi in global_instincts:
|
|
375
|
-
if gi.get('id') not in project_ids:
|
|
376
|
-
instincts.append(gi)
|
|
377
|
-
|
|
378
|
-
return instincts
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
def load_project_only_instincts(project: dict) -> list[dict]:
|
|
382
|
-
"""Load only project-scoped instincts (no global).
|
|
383
|
-
|
|
384
|
-
In global fallback mode (no git project), returns global instincts.
|
|
385
|
-
"""
|
|
386
|
-
if project.get("id") == "global":
|
|
387
|
-
instincts = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
388
|
-
instincts += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
389
|
-
return instincts
|
|
390
|
-
return load_all_instincts(project, include_global=False)
|
|
391
|
-
|
|
392
|
-
|
|
393
|
-
# ─────────────────────────────────────────────
|
|
394
|
-
# Status Command
|
|
395
|
-
# ─────────────────────────────────────────────
|
|
396
|
-
|
|
397
|
-
def cmd_status(args) -> int:
|
|
398
|
-
"""Show status of all instincts (project + global)."""
|
|
399
|
-
project = detect_project()
|
|
400
|
-
instincts = load_all_instincts(project)
|
|
401
|
-
|
|
402
|
-
if not instincts:
|
|
403
|
-
print("No instincts found.")
|
|
404
|
-
print(f"\nProject: {project['name']} ({project['id']})")
|
|
405
|
-
print(f" Project instincts: {project['instincts_personal']}")
|
|
406
|
-
print(f" Global instincts: {GLOBAL_PERSONAL_DIR}")
|
|
407
|
-
else:
|
|
408
|
-
# Split by scope
|
|
409
|
-
project_instincts = [i for i in instincts if i.get('_scope_label') == 'project']
|
|
410
|
-
global_instincts = [i for i in instincts if i.get('_scope_label') == 'global']
|
|
411
|
-
|
|
412
|
-
# Print header
|
|
413
|
-
print(f"\n{'='*60}")
|
|
414
|
-
print(f" INSTINCT STATUS - {len(instincts)} total")
|
|
415
|
-
print(f"{'='*60}\n")
|
|
416
|
-
|
|
417
|
-
print(f" Project: {project['name']} ({project['id']})")
|
|
418
|
-
print(f" Project instincts: {len(project_instincts)}")
|
|
419
|
-
print(f" Global instincts: {len(global_instincts)}")
|
|
420
|
-
print()
|
|
421
|
-
|
|
422
|
-
# Print project-scoped instincts
|
|
423
|
-
if project_instincts:
|
|
424
|
-
print(f"## PROJECT-SCOPED ({project['name']})")
|
|
425
|
-
print()
|
|
426
|
-
_print_instincts_by_domain(project_instincts)
|
|
427
|
-
|
|
428
|
-
# Print global instincts
|
|
429
|
-
if global_instincts:
|
|
430
|
-
print("## GLOBAL (apply to all projects)")
|
|
431
|
-
print()
|
|
432
|
-
_print_instincts_by_domain(global_instincts)
|
|
433
|
-
|
|
434
|
-
# Observations stats
|
|
435
|
-
obs_file = project.get("observations_file")
|
|
436
|
-
if obs_file and Path(obs_file).exists():
|
|
437
|
-
with open(obs_file, encoding="utf-8") as f:
|
|
438
|
-
obs_count = sum(1 for _ in f)
|
|
439
|
-
print(f"-" * 60)
|
|
440
|
-
print(f" Observations: {obs_count} events logged")
|
|
441
|
-
print(f" File: {obs_file}")
|
|
442
|
-
|
|
443
|
-
# Pending instinct stats
|
|
444
|
-
pending = _collect_pending_instincts()
|
|
445
|
-
if pending:
|
|
446
|
-
print(f"\n{'-'*60}")
|
|
447
|
-
print(f" Pending instincts: {len(pending)} awaiting review")
|
|
448
|
-
|
|
449
|
-
if len(pending) >= 5:
|
|
450
|
-
print(f"\n \u26a0 {len(pending)} pending instincts awaiting review."
|
|
451
|
-
f" Unreviewed instincts auto-delete after {PENDING_TTL_DAYS} days.")
|
|
452
|
-
|
|
453
|
-
# Show instincts expiring within PENDING_EXPIRY_WARNING_DAYS
|
|
454
|
-
expiry_threshold = PENDING_TTL_DAYS - PENDING_EXPIRY_WARNING_DAYS
|
|
455
|
-
expiring_soon = [p for p in pending
|
|
456
|
-
if p["age_days"] >= expiry_threshold and p["age_days"] < PENDING_TTL_DAYS]
|
|
457
|
-
if expiring_soon:
|
|
458
|
-
print(f"\n Expiring within {PENDING_EXPIRY_WARNING_DAYS} days:")
|
|
459
|
-
for item in expiring_soon:
|
|
460
|
-
days_left = max(0, PENDING_TTL_DAYS - item["age_days"])
|
|
461
|
-
print(f" - {item['name']} ({days_left}d remaining)")
|
|
462
|
-
|
|
463
|
-
print(f"\n{'='*60}\n")
|
|
464
|
-
return 0
|
|
465
|
-
|
|
466
|
-
|
|
467
|
-
def _print_instincts_by_domain(instincts: list[dict]) -> None:
|
|
468
|
-
"""Helper to print instincts grouped by domain."""
|
|
469
|
-
by_domain = defaultdict(list)
|
|
470
|
-
for inst in instincts:
|
|
471
|
-
domain = inst.get('domain', 'general')
|
|
472
|
-
by_domain[domain].append(inst)
|
|
473
|
-
|
|
474
|
-
for domain in sorted(by_domain.keys()):
|
|
475
|
-
domain_instincts = by_domain[domain]
|
|
476
|
-
print(f" ### {domain.upper()} ({len(domain_instincts)})")
|
|
477
|
-
print()
|
|
478
|
-
|
|
479
|
-
for inst in sorted(domain_instincts, key=lambda x: -x.get('confidence', 0.5)):
|
|
480
|
-
conf = inst.get('confidence', 0.5)
|
|
481
|
-
conf_bar = '\u2588' * int(conf * 10) + '\u2591' * (10 - int(conf * 10))
|
|
482
|
-
trigger = inst.get('trigger', 'unknown trigger')
|
|
483
|
-
scope_tag = f"[{inst.get('scope', '?')}]"
|
|
484
|
-
|
|
485
|
-
print(f" {conf_bar} {int(conf*100):3d}% {inst.get('id', 'unnamed')} {scope_tag}")
|
|
486
|
-
print(f" trigger: {trigger}")
|
|
487
|
-
|
|
488
|
-
# Extract action from content
|
|
489
|
-
content = inst.get('content', '')
|
|
490
|
-
action_match = re.search(r'## Action\s*\n\s*(.+?)(?:\n\n|\n##|$)', content, re.DOTALL)
|
|
491
|
-
if action_match:
|
|
492
|
-
action = action_match.group(1).strip().split('\n')[0]
|
|
493
|
-
print(f" action: {action[:60]}{'...' if len(action) > 60 else ''}")
|
|
494
|
-
|
|
495
|
-
print()
|
|
496
|
-
|
|
497
|
-
|
|
498
|
-
# ─────────────────────────────────────────────
|
|
499
|
-
# Import Command
|
|
500
|
-
# ─────────────────────────────────────────────
|
|
501
|
-
|
|
502
|
-
def cmd_import(args) -> int:
|
|
503
|
-
"""Import instincts from file or URL."""
|
|
504
|
-
project = detect_project()
|
|
505
|
-
source = args.source
|
|
506
|
-
|
|
507
|
-
# Determine target scope
|
|
508
|
-
target_scope = args.scope or "project"
|
|
509
|
-
if target_scope == "project" and project["id"] == "global":
|
|
510
|
-
print("No project detected. Importing as global scope.")
|
|
511
|
-
target_scope = "global"
|
|
512
|
-
|
|
513
|
-
# Fetch content
|
|
514
|
-
if source.startswith('http://') or source.startswith('https://'):
|
|
515
|
-
print(f"Fetching from URL: {source}")
|
|
516
|
-
try:
|
|
517
|
-
with urllib.request.urlopen(source) as response:
|
|
518
|
-
content = response.read().decode('utf-8')
|
|
519
|
-
except Exception as e:
|
|
520
|
-
print(f"Error fetching URL: {e}", file=sys.stderr)
|
|
521
|
-
return 1
|
|
522
|
-
else:
|
|
523
|
-
try:
|
|
524
|
-
path = _validate_file_path(source, must_exist=True)
|
|
525
|
-
except ValueError as e:
|
|
526
|
-
print(f"Invalid path: {e}", file=sys.stderr)
|
|
527
|
-
return 1
|
|
528
|
-
if not path.is_file():
|
|
529
|
-
print(f"Error: '{path}' is not a regular file.", file=sys.stderr)
|
|
530
|
-
return 1
|
|
531
|
-
content = path.read_text(encoding="utf-8")
|
|
532
|
-
|
|
533
|
-
# Parse instincts
|
|
534
|
-
new_instincts = parse_instinct_file(content)
|
|
535
|
-
if not new_instincts:
|
|
536
|
-
print("No valid instincts found in source.")
|
|
537
|
-
return 1
|
|
538
|
-
|
|
539
|
-
print(f"\nFound {len(new_instincts)} instincts to import.")
|
|
540
|
-
print(f"Target scope: {target_scope}")
|
|
541
|
-
if target_scope == "project":
|
|
542
|
-
print(f"Target project: {project['name']} ({project['id']})")
|
|
543
|
-
print()
|
|
544
|
-
|
|
545
|
-
# Load existing instincts for dedup, scoped to the target to avoid
|
|
546
|
-
# cross-scope shadowing (project instincts hiding global ones or vice versa)
|
|
547
|
-
if target_scope == "global":
|
|
548
|
-
existing = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
549
|
-
existing += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
550
|
-
else:
|
|
551
|
-
existing = load_project_only_instincts(project)
|
|
552
|
-
existing_ids = {i.get('id') for i in existing}
|
|
553
|
-
|
|
554
|
-
# Deduplicate within the import source: keep highest confidence per ID
|
|
555
|
-
best_by_id = {}
|
|
556
|
-
for inst in new_instincts:
|
|
557
|
-
inst_id = inst.get('id')
|
|
558
|
-
if inst_id not in best_by_id or inst.get('confidence', 0.5) > best_by_id[inst_id].get('confidence', 0.5):
|
|
559
|
-
best_by_id[inst_id] = inst
|
|
560
|
-
deduped_instincts = list(best_by_id.values())
|
|
561
|
-
|
|
562
|
-
# Categorize against existing instincts on disk
|
|
563
|
-
to_add = []
|
|
564
|
-
duplicates = []
|
|
565
|
-
to_update = []
|
|
566
|
-
|
|
567
|
-
for inst in deduped_instincts:
|
|
568
|
-
inst_id = inst.get('id')
|
|
569
|
-
if inst_id in existing_ids:
|
|
570
|
-
existing_inst = next((e for e in existing if e.get('id') == inst_id), None)
|
|
571
|
-
if existing_inst:
|
|
572
|
-
if inst.get('confidence', 0) > existing_inst.get('confidence', 0):
|
|
573
|
-
to_update.append(inst)
|
|
574
|
-
else:
|
|
575
|
-
duplicates.append(inst)
|
|
576
|
-
else:
|
|
577
|
-
to_add.append(inst)
|
|
578
|
-
|
|
579
|
-
# Filter by minimum confidence
|
|
580
|
-
min_conf = args.min_confidence if args.min_confidence is not None else 0.0
|
|
581
|
-
to_add = [i for i in to_add if i.get('confidence', 0.5) >= min_conf]
|
|
582
|
-
to_update = [i for i in to_update if i.get('confidence', 0.5) >= min_conf]
|
|
583
|
-
|
|
584
|
-
# Display summary
|
|
585
|
-
if to_add:
|
|
586
|
-
print(f"NEW ({len(to_add)}):")
|
|
587
|
-
for inst in to_add:
|
|
588
|
-
print(f" + {inst.get('id')} (confidence: {inst.get('confidence', 0.5):.2f})")
|
|
589
|
-
|
|
590
|
-
if to_update:
|
|
591
|
-
print(f"\nUPDATE ({len(to_update)}):")
|
|
592
|
-
for inst in to_update:
|
|
593
|
-
print(f" ~ {inst.get('id')} (confidence: {inst.get('confidence', 0.5):.2f})")
|
|
594
|
-
|
|
595
|
-
if duplicates:
|
|
596
|
-
print(f"\nSKIP ({len(duplicates)} - already exists with equal/higher confidence):")
|
|
597
|
-
for inst in duplicates[:5]:
|
|
598
|
-
print(f" - {inst.get('id')}")
|
|
599
|
-
if len(duplicates) > 5:
|
|
600
|
-
print(f" ... and {len(duplicates) - 5} more")
|
|
601
|
-
|
|
602
|
-
if args.dry_run:
|
|
603
|
-
print("\n[DRY RUN] No changes made.")
|
|
604
|
-
return 0
|
|
605
|
-
|
|
606
|
-
if not to_add and not to_update:
|
|
607
|
-
print("\nNothing to import.")
|
|
608
|
-
return 0
|
|
609
|
-
|
|
610
|
-
# Confirm
|
|
611
|
-
if not args.force:
|
|
612
|
-
response = input(f"\nImport {len(to_add)} new, update {len(to_update)}? [y/N] ")
|
|
613
|
-
if response.lower() != 'y':
|
|
614
|
-
print("Cancelled.")
|
|
615
|
-
return 0
|
|
616
|
-
|
|
617
|
-
# Determine output directory based on scope
|
|
618
|
-
if target_scope == "global":
|
|
619
|
-
output_dir = GLOBAL_INHERITED_DIR
|
|
620
|
-
else:
|
|
621
|
-
output_dir = project["instincts_inherited"]
|
|
622
|
-
|
|
623
|
-
output_dir.mkdir(parents=True, exist_ok=True)
|
|
624
|
-
|
|
625
|
-
# Collect stale files for instincts being updated (deleted after new file is written).
|
|
626
|
-
# Allow deletion from any subdirectory (personal/ or inherited/) within the
|
|
627
|
-
# target scope to prevent the same ID existing in both places. Guard against
|
|
628
|
-
# cross-scope deletion by restricting to the scope's instincts root.
|
|
629
|
-
if target_scope == "global":
|
|
630
|
-
scope_root = GLOBAL_INSTINCTS_DIR.resolve()
|
|
631
|
-
else:
|
|
632
|
-
scope_root = (project["project_dir"] / "instincts").resolve() if project["id"] != "global" else GLOBAL_INSTINCTS_DIR.resolve()
|
|
633
|
-
stale_paths = []
|
|
634
|
-
for inst in to_update:
|
|
635
|
-
inst_id = inst.get('id')
|
|
636
|
-
stale = next((e for e in existing if e.get('id') == inst_id), None)
|
|
637
|
-
if stale and stale.get('_source_file'):
|
|
638
|
-
stale_path = Path(stale['_source_file']).resolve()
|
|
639
|
-
if stale_path.exists() and str(stale_path).startswith(str(scope_root) + os.sep):
|
|
640
|
-
stale_paths.append(stale_path)
|
|
641
|
-
|
|
642
|
-
# Write new file first (safe: if this fails, stale files are preserved)
|
|
643
|
-
timestamp = datetime.now().strftime('%Y%m%d-%H%M%S')
|
|
644
|
-
source_name = Path(source).stem if not source.startswith('http') else 'web-import'
|
|
645
|
-
output_file = output_dir / f"{source_name}-{timestamp}.yaml"
|
|
646
|
-
|
|
647
|
-
all_to_write = to_add + to_update
|
|
648
|
-
output_content = f"# Imported from {source}\n# Date: {datetime.now().isoformat()}\n# Scope: {target_scope}\n"
|
|
649
|
-
if target_scope == "project":
|
|
650
|
-
output_content += f"# Project: {project['name']} ({project['id']})\n"
|
|
651
|
-
output_content += "\n"
|
|
652
|
-
|
|
653
|
-
for inst in all_to_write:
|
|
654
|
-
output_content += "---\n"
|
|
655
|
-
output_content += f"id: {inst.get('id')}\n"
|
|
656
|
-
output_content += f"trigger: {_yaml_quote(inst.get('trigger', 'unknown'))}\n"
|
|
657
|
-
output_content += f"confidence: {inst.get('confidence', 0.5)}\n"
|
|
658
|
-
output_content += f"domain: {inst.get('domain', 'general')}\n"
|
|
659
|
-
output_content += "source: inherited\n"
|
|
660
|
-
output_content += f"scope: {target_scope}\n"
|
|
661
|
-
output_content += f"imported_from: {_yaml_quote(source)}\n"
|
|
662
|
-
if target_scope == "project":
|
|
663
|
-
output_content += f"project_id: {project['id']}\n"
|
|
664
|
-
output_content += f"project_name: {project['name']}\n"
|
|
665
|
-
if inst.get('source_repo'):
|
|
666
|
-
output_content += f"source_repo: {inst.get('source_repo')}\n"
|
|
667
|
-
output_content += "---\n\n"
|
|
668
|
-
output_content += inst.get('content', '') + "\n\n"
|
|
669
|
-
|
|
670
|
-
output_file.write_text(output_content, encoding="utf-8")
|
|
671
|
-
|
|
672
|
-
# Remove stale files only after the new file has been written successfully
|
|
673
|
-
for stale_path in stale_paths:
|
|
674
|
-
try:
|
|
675
|
-
stale_path.unlink()
|
|
676
|
-
except OSError:
|
|
677
|
-
pass # best-effort removal
|
|
678
|
-
|
|
679
|
-
print(f"\nImport complete!")
|
|
680
|
-
print(f" Scope: {target_scope}")
|
|
681
|
-
print(f" Added: {len(to_add)}")
|
|
682
|
-
print(f" Updated: {len(to_update)}")
|
|
683
|
-
print(f" Saved to: {output_file}")
|
|
684
|
-
|
|
685
|
-
return 0
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
# ─────────────────────────────────────────────
|
|
689
|
-
# Export Command
|
|
690
|
-
# ─────────────────────────────────────────────
|
|
691
|
-
|
|
692
|
-
def cmd_export(args) -> int:
|
|
693
|
-
"""Export instincts to file."""
|
|
694
|
-
project = detect_project()
|
|
695
|
-
|
|
696
|
-
# Determine what to export based on scope filter
|
|
697
|
-
if args.scope == "project":
|
|
698
|
-
instincts = load_project_only_instincts(project)
|
|
699
|
-
elif args.scope == "global":
|
|
700
|
-
instincts = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
701
|
-
instincts += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
702
|
-
else:
|
|
703
|
-
instincts = load_all_instincts(project)
|
|
704
|
-
|
|
705
|
-
if not instincts:
|
|
706
|
-
print("No instincts to export.")
|
|
707
|
-
return 1
|
|
708
|
-
|
|
709
|
-
# Filter by domain if specified
|
|
710
|
-
if args.domain:
|
|
711
|
-
instincts = [i for i in instincts if i.get('domain') == args.domain]
|
|
712
|
-
|
|
713
|
-
# Filter by minimum confidence
|
|
714
|
-
if args.min_confidence:
|
|
715
|
-
instincts = [i for i in instincts if i.get('confidence', 0.5) >= args.min_confidence]
|
|
716
|
-
|
|
717
|
-
if not instincts:
|
|
718
|
-
print("No instincts match the criteria.")
|
|
719
|
-
return 1
|
|
720
|
-
|
|
721
|
-
# Generate output
|
|
722
|
-
output = f"# Instincts export\n# Date: {datetime.now().isoformat()}\n# Total: {len(instincts)}\n"
|
|
723
|
-
if args.scope:
|
|
724
|
-
output += f"# Scope: {args.scope}\n"
|
|
725
|
-
if project["id"] != "global":
|
|
726
|
-
output += f"# Project: {project['name']} ({project['id']})\n"
|
|
727
|
-
output += "\n"
|
|
728
|
-
|
|
729
|
-
for inst in instincts:
|
|
730
|
-
output += "---\n"
|
|
731
|
-
for key in ['id', 'trigger', 'confidence', 'domain', 'source', 'scope',
|
|
732
|
-
'project_id', 'project_name', 'source_repo']:
|
|
733
|
-
if inst.get(key):
|
|
734
|
-
value = inst[key]
|
|
735
|
-
if key == 'trigger':
|
|
736
|
-
output += f'{key}: {_yaml_quote(value)}\n'
|
|
737
|
-
else:
|
|
738
|
-
output += f"{key}: {value}\n"
|
|
739
|
-
output += "---\n\n"
|
|
740
|
-
output += inst.get('content', '') + "\n\n"
|
|
741
|
-
|
|
742
|
-
# Write to file or stdout
|
|
743
|
-
if args.output:
|
|
744
|
-
try:
|
|
745
|
-
out_path = _validate_file_path(args.output)
|
|
746
|
-
except ValueError as e:
|
|
747
|
-
print(f"Invalid output path: {e}", file=sys.stderr)
|
|
748
|
-
return 1
|
|
749
|
-
if out_path.is_dir():
|
|
750
|
-
print(f"Error: '{out_path}' is a directory, not a file.", file=sys.stderr)
|
|
751
|
-
return 1
|
|
752
|
-
out_path.parent.mkdir(parents=True, exist_ok=True)
|
|
753
|
-
out_path.write_text(output, encoding="utf-8")
|
|
754
|
-
print(f"Exported {len(instincts)} instincts to {out_path}")
|
|
755
|
-
else:
|
|
756
|
-
print(output)
|
|
757
|
-
|
|
758
|
-
return 0
|
|
759
|
-
|
|
760
|
-
|
|
761
|
-
# ─────────────────────────────────────────────
|
|
762
|
-
# Evolve Command
|
|
763
|
-
# ─────────────────────────────────────────────
|
|
764
|
-
|
|
765
|
-
def cmd_evolve(args) -> int:
|
|
766
|
-
"""Analyze instincts and suggest evolutions to skills/commands/agents."""
|
|
767
|
-
project = detect_project()
|
|
768
|
-
instincts = load_all_instincts(project)
|
|
769
|
-
|
|
770
|
-
if len(instincts) < 3:
|
|
771
|
-
print("Need at least 3 instincts to analyze patterns.")
|
|
772
|
-
print(f"Currently have: {len(instincts)}")
|
|
773
|
-
return 1
|
|
774
|
-
|
|
775
|
-
project_instincts = [i for i in instincts if i.get('_scope_label') == 'project']
|
|
776
|
-
global_instincts = [i for i in instincts if i.get('_scope_label') == 'global']
|
|
777
|
-
|
|
778
|
-
print(f"\n{'='*60}")
|
|
779
|
-
print(f" EVOLVE ANALYSIS - {len(instincts)} instincts")
|
|
780
|
-
print(f" Project: {project['name']} ({project['id']})")
|
|
781
|
-
print(f" Project-scoped: {len(project_instincts)} | Global: {len(global_instincts)}")
|
|
782
|
-
print(f"{'='*60}\n")
|
|
783
|
-
|
|
784
|
-
# Group by domain
|
|
785
|
-
by_domain = defaultdict(list)
|
|
786
|
-
for inst in instincts:
|
|
787
|
-
domain = inst.get('domain', 'general')
|
|
788
|
-
by_domain[domain].append(inst)
|
|
789
|
-
|
|
790
|
-
# High-confidence instincts by domain (candidates for skills)
|
|
791
|
-
high_conf = [i for i in instincts if i.get('confidence', 0) >= 0.8]
|
|
792
|
-
print(f"High confidence instincts (>=80%): {len(high_conf)}")
|
|
793
|
-
|
|
794
|
-
# Find clusters (instincts with similar triggers)
|
|
795
|
-
trigger_clusters = defaultdict(list)
|
|
796
|
-
for inst in instincts:
|
|
797
|
-
trigger = inst.get('trigger', '')
|
|
798
|
-
# Normalize trigger
|
|
799
|
-
trigger_key = trigger.lower()
|
|
800
|
-
for keyword in ['when', 'creating', 'writing', 'adding', 'implementing', 'testing']:
|
|
801
|
-
trigger_key = trigger_key.replace(keyword, '').strip()
|
|
802
|
-
trigger_clusters[trigger_key].append(inst)
|
|
803
|
-
|
|
804
|
-
# Find clusters with 2+ instincts (good skill candidates)
|
|
805
|
-
skill_candidates = []
|
|
806
|
-
for trigger, cluster in trigger_clusters.items():
|
|
807
|
-
if len(cluster) >= 2:
|
|
808
|
-
avg_conf = sum(i.get('confidence', 0.5) for i in cluster) / len(cluster)
|
|
809
|
-
skill_candidates.append({
|
|
810
|
-
'trigger': trigger,
|
|
811
|
-
'instincts': cluster,
|
|
812
|
-
'avg_confidence': avg_conf,
|
|
813
|
-
'domains': list(set(i.get('domain', 'general') for i in cluster)),
|
|
814
|
-
'scopes': list(set(i.get('scope', 'project') for i in cluster)),
|
|
815
|
-
})
|
|
816
|
-
|
|
817
|
-
# Sort by cluster size and confidence
|
|
818
|
-
skill_candidates.sort(key=lambda x: (-len(x['instincts']), -x['avg_confidence']))
|
|
819
|
-
|
|
820
|
-
print(f"\nPotential skill clusters found: {len(skill_candidates)}")
|
|
821
|
-
|
|
822
|
-
if skill_candidates:
|
|
823
|
-
print(f"\n## SKILL CANDIDATES\n")
|
|
824
|
-
for i, cand in enumerate(skill_candidates[:5], 1):
|
|
825
|
-
scope_info = ', '.join(cand['scopes'])
|
|
826
|
-
print(f"{i}. Cluster: \"{cand['trigger']}\"")
|
|
827
|
-
print(f" Instincts: {len(cand['instincts'])}")
|
|
828
|
-
print(f" Avg confidence: {cand['avg_confidence']:.0%}")
|
|
829
|
-
print(f" Domains: {', '.join(cand['domains'])}")
|
|
830
|
-
print(f" Scopes: {scope_info}")
|
|
831
|
-
print(f" Instincts:")
|
|
832
|
-
for inst in cand['instincts'][:3]:
|
|
833
|
-
print(f" - {inst.get('id')} [{inst.get('scope', '?')}]")
|
|
834
|
-
print()
|
|
835
|
-
|
|
836
|
-
# Command candidates (workflow instincts with high confidence)
|
|
837
|
-
workflow_instincts = [i for i in instincts if i.get('domain') == 'workflow' and i.get('confidence', 0) >= 0.7]
|
|
838
|
-
if workflow_instincts:
|
|
839
|
-
print(f"\n## COMMAND CANDIDATES ({len(workflow_instincts)})\n")
|
|
840
|
-
for inst in workflow_instincts[:5]:
|
|
841
|
-
trigger = inst.get('trigger', 'unknown')
|
|
842
|
-
cmd_name = trigger.replace('when ', '').replace('implementing ', '').replace('a ', '')
|
|
843
|
-
cmd_name = cmd_name.replace(' ', '-')[:20]
|
|
844
|
-
print(f" /{cmd_name}")
|
|
845
|
-
print(f" From: {inst.get('id')} [{inst.get('scope', '?')}]")
|
|
846
|
-
print(f" Confidence: {inst.get('confidence', 0.5):.0%}")
|
|
847
|
-
print()
|
|
848
|
-
|
|
849
|
-
# Agent candidates (complex multi-step patterns)
|
|
850
|
-
agent_candidates = [c for c in skill_candidates if len(c['instincts']) >= 3 and c['avg_confidence'] >= 0.75]
|
|
851
|
-
if agent_candidates:
|
|
852
|
-
print(f"\n## AGENT CANDIDATES ({len(agent_candidates)})\n")
|
|
853
|
-
for cand in agent_candidates[:3]:
|
|
854
|
-
agent_name = cand['trigger'].replace(' ', '-')[:20] + '-agent'
|
|
855
|
-
print(f" {agent_name}")
|
|
856
|
-
print(f" Covers {len(cand['instincts'])} instincts")
|
|
857
|
-
print(f" Avg confidence: {cand['avg_confidence']:.0%}")
|
|
858
|
-
print()
|
|
859
|
-
|
|
860
|
-
# Promotion candidates (project instincts that could be global)
|
|
861
|
-
_show_promotion_candidates(project)
|
|
862
|
-
|
|
863
|
-
if args.generate:
|
|
864
|
-
evolved_dir = project["evolved_dir"] if project["id"] != "global" else GLOBAL_EVOLVED_DIR
|
|
865
|
-
generated = _generate_evolved(skill_candidates, workflow_instincts, agent_candidates, evolved_dir)
|
|
866
|
-
if generated:
|
|
867
|
-
print(f"\nGenerated {len(generated)} evolved structures:")
|
|
868
|
-
for path in generated:
|
|
869
|
-
print(f" {path}")
|
|
870
|
-
else:
|
|
871
|
-
print("\nNo structures generated (need higher-confidence clusters).")
|
|
872
|
-
|
|
873
|
-
print(f"\n{'='*60}\n")
|
|
874
|
-
return 0
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
# ─────────────────────────────────────────────
|
|
878
|
-
# Promote Command
|
|
879
|
-
# ─────────────────────────────────────────────
|
|
880
|
-
|
|
881
|
-
def _find_cross_project_instincts() -> dict:
|
|
882
|
-
"""Find instincts that appear in multiple projects (promotion candidates).
|
|
883
|
-
|
|
884
|
-
Returns dict mapping instinct ID → list of (project_id, instinct) tuples.
|
|
885
|
-
"""
|
|
886
|
-
registry = load_registry()
|
|
887
|
-
cross_project = defaultdict(list)
|
|
888
|
-
|
|
889
|
-
for pid, pinfo in registry.items():
|
|
890
|
-
project_dir = PROJECTS_DIR / pid
|
|
891
|
-
personal_dir = project_dir / "instincts" / "personal"
|
|
892
|
-
inherited_dir = project_dir / "instincts" / "inherited"
|
|
893
|
-
|
|
894
|
-
# Track instinct IDs already seen for this project to avoid counting
|
|
895
|
-
# the same instinct twice within one project (e.g. in both personal/ and inherited/)
|
|
896
|
-
seen_in_project = set()
|
|
897
|
-
for d, stype in [(personal_dir, "personal"), (inherited_dir, "inherited")]:
|
|
898
|
-
for inst in _load_instincts_from_dir(d, stype, "project"):
|
|
899
|
-
iid = inst.get('id')
|
|
900
|
-
if iid and iid not in seen_in_project:
|
|
901
|
-
seen_in_project.add(iid)
|
|
902
|
-
cross_project[iid].append((pid, pinfo.get('name', pid), inst))
|
|
903
|
-
|
|
904
|
-
# Filter to only those appearing in 2+ unique projects
|
|
905
|
-
return {iid: entries for iid, entries in cross_project.items() if len(entries) >= 2}
|
|
906
|
-
|
|
907
|
-
|
|
908
|
-
def _show_promotion_candidates(project: dict) -> None:
|
|
909
|
-
"""Show instincts that could be promoted from project to global."""
|
|
910
|
-
cross = _find_cross_project_instincts()
|
|
911
|
-
|
|
912
|
-
if not cross:
|
|
913
|
-
return
|
|
914
|
-
|
|
915
|
-
# Filter to high-confidence ones not already global
|
|
916
|
-
global_instincts = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
917
|
-
global_instincts += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
918
|
-
global_ids = {i.get('id') for i in global_instincts}
|
|
919
|
-
|
|
920
|
-
candidates = []
|
|
921
|
-
for iid, entries in cross.items():
|
|
922
|
-
if iid in global_ids:
|
|
923
|
-
continue
|
|
924
|
-
avg_conf = sum(e[2].get('confidence', 0.5) for e in entries) / len(entries)
|
|
925
|
-
if avg_conf >= PROMOTE_CONFIDENCE_THRESHOLD:
|
|
926
|
-
candidates.append({
|
|
927
|
-
'id': iid,
|
|
928
|
-
'projects': [(pid, pname) for pid, pname, _ in entries],
|
|
929
|
-
'avg_confidence': avg_conf,
|
|
930
|
-
'sample': entries[0][2],
|
|
931
|
-
})
|
|
932
|
-
|
|
933
|
-
if candidates:
|
|
934
|
-
print(f"\n## PROMOTION CANDIDATES (project -> global)\n")
|
|
935
|
-
print(f" These instincts appear in {PROMOTE_MIN_PROJECTS}+ projects with high confidence:\n")
|
|
936
|
-
for cand in candidates[:10]:
|
|
937
|
-
proj_names = ', '.join(pname for _, pname in cand['projects'])
|
|
938
|
-
print(f" * {cand['id']} (avg: {cand['avg_confidence']:.0%})")
|
|
939
|
-
print(f" Found in: {proj_names}")
|
|
940
|
-
print()
|
|
941
|
-
print(f" Run `instinct-cli.py promote` to promote these to global scope.\n")
|
|
942
|
-
|
|
943
|
-
|
|
944
|
-
def cmd_promote(args) -> int:
|
|
945
|
-
"""Promote project-scoped instincts to global scope."""
|
|
946
|
-
project = detect_project()
|
|
947
|
-
|
|
948
|
-
if args.instinct_id:
|
|
949
|
-
# Promote a specific instinct
|
|
950
|
-
return _promote_specific(project, args.instinct_id, args.force, args.dry_run)
|
|
951
|
-
else:
|
|
952
|
-
# Auto-detect promotion candidates
|
|
953
|
-
return _promote_auto(project, args.force, args.dry_run)
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
def _promote_specific(project: dict, instinct_id: str, force: bool, dry_run: bool = False) -> int:
|
|
957
|
-
"""Promote a specific instinct by ID from current project to global."""
|
|
958
|
-
if not _validate_instinct_id(instinct_id):
|
|
959
|
-
print(f"Invalid instinct ID: '{instinct_id}'.", file=sys.stderr)
|
|
960
|
-
return 1
|
|
961
|
-
|
|
962
|
-
project_instincts = load_project_only_instincts(project)
|
|
963
|
-
target = next((i for i in project_instincts if i.get('id') == instinct_id), None)
|
|
964
|
-
|
|
965
|
-
if not target:
|
|
966
|
-
print(f"Instinct '{instinct_id}' not found in project {project['name']}.")
|
|
967
|
-
return 1
|
|
968
|
-
|
|
969
|
-
# Check if already global
|
|
970
|
-
global_instincts = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
971
|
-
global_instincts += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
972
|
-
if any(i.get('id') == instinct_id for i in global_instincts):
|
|
973
|
-
print(f"Instinct '{instinct_id}' already exists in global scope.")
|
|
974
|
-
return 1
|
|
975
|
-
|
|
976
|
-
print(f"\nPromoting: {instinct_id}")
|
|
977
|
-
print(f" From: project '{project['name']}'")
|
|
978
|
-
print(f" Confidence: {target.get('confidence', 0.5):.0%}")
|
|
979
|
-
print(f" Domain: {target.get('domain', 'general')}")
|
|
980
|
-
|
|
981
|
-
if dry_run:
|
|
982
|
-
print("\n[DRY RUN] No changes made.")
|
|
983
|
-
return 0
|
|
984
|
-
|
|
985
|
-
if not force:
|
|
986
|
-
response = input(f"\nPromote to global? [y/N] ")
|
|
987
|
-
if response.lower() != 'y':
|
|
988
|
-
print("Cancelled.")
|
|
989
|
-
return 0
|
|
990
|
-
|
|
991
|
-
# Write to global personal directory
|
|
992
|
-
output_file = GLOBAL_PERSONAL_DIR / f"{instinct_id}.yaml"
|
|
993
|
-
output_content = "---\n"
|
|
994
|
-
output_content += f"id: {target.get('id')}\n"
|
|
995
|
-
output_content += f"trigger: {_yaml_quote(target.get('trigger', 'unknown'))}\n"
|
|
996
|
-
output_content += f"confidence: {target.get('confidence', 0.5)}\n"
|
|
997
|
-
output_content += f"domain: {target.get('domain', 'general')}\n"
|
|
998
|
-
output_content += f"source: {target.get('source', 'promoted')}\n"
|
|
999
|
-
output_content += f"scope: global\n"
|
|
1000
|
-
output_content += f"promoted_from: {project['id']}\n"
|
|
1001
|
-
output_content += f"promoted_date: {datetime.now(timezone.utc).isoformat().replace('+00:00', 'Z')}\n"
|
|
1002
|
-
output_content += "---\n\n"
|
|
1003
|
-
output_content += target.get('content', '') + "\n"
|
|
1004
|
-
|
|
1005
|
-
output_file.write_text(output_content, encoding="utf-8")
|
|
1006
|
-
print(f"\nPromoted '{instinct_id}' to global scope.")
|
|
1007
|
-
print(f" Saved to: {output_file}")
|
|
1008
|
-
return 0
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
def _promote_auto(project: dict, force: bool, dry_run: bool) -> int:
|
|
1012
|
-
"""Auto-promote instincts found in multiple projects."""
|
|
1013
|
-
cross = _find_cross_project_instincts()
|
|
1014
|
-
|
|
1015
|
-
global_instincts = _load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global")
|
|
1016
|
-
global_instincts += _load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global")
|
|
1017
|
-
global_ids = {i.get('id') for i in global_instincts}
|
|
1018
|
-
|
|
1019
|
-
candidates = []
|
|
1020
|
-
for iid, entries in cross.items():
|
|
1021
|
-
if iid in global_ids:
|
|
1022
|
-
continue
|
|
1023
|
-
avg_conf = sum(e[2].get('confidence', 0.5) for e in entries) / len(entries)
|
|
1024
|
-
if avg_conf >= PROMOTE_CONFIDENCE_THRESHOLD and len(entries) >= PROMOTE_MIN_PROJECTS:
|
|
1025
|
-
candidates.append({
|
|
1026
|
-
'id': iid,
|
|
1027
|
-
'entries': entries,
|
|
1028
|
-
'avg_confidence': avg_conf,
|
|
1029
|
-
})
|
|
1030
|
-
|
|
1031
|
-
if not candidates:
|
|
1032
|
-
print("No instincts qualify for auto-promotion.")
|
|
1033
|
-
print(f" Criteria: appears in {PROMOTE_MIN_PROJECTS}+ projects, avg confidence >= {PROMOTE_CONFIDENCE_THRESHOLD:.0%}")
|
|
1034
|
-
return 0
|
|
1035
|
-
|
|
1036
|
-
print(f"\n{'='*60}")
|
|
1037
|
-
print(f" AUTO-PROMOTION CANDIDATES - {len(candidates)} found")
|
|
1038
|
-
print(f"{'='*60}\n")
|
|
1039
|
-
|
|
1040
|
-
for cand in candidates:
|
|
1041
|
-
proj_names = ', '.join(pname for _, pname, _ in cand['entries'])
|
|
1042
|
-
print(f" {cand['id']} (avg: {cand['avg_confidence']:.0%})")
|
|
1043
|
-
print(f" Found in {len(cand['entries'])} projects: {proj_names}")
|
|
1044
|
-
|
|
1045
|
-
if dry_run:
|
|
1046
|
-
print(f"\n[DRY RUN] No changes made.")
|
|
1047
|
-
return 0
|
|
1048
|
-
|
|
1049
|
-
if not force:
|
|
1050
|
-
response = input(f"\nPromote {len(candidates)} instincts to global? [y/N] ")
|
|
1051
|
-
if response.lower() != 'y':
|
|
1052
|
-
print("Cancelled.")
|
|
1053
|
-
return 0
|
|
1054
|
-
|
|
1055
|
-
promoted = 0
|
|
1056
|
-
for cand in candidates:
|
|
1057
|
-
if not _validate_instinct_id(cand['id']):
|
|
1058
|
-
print(f"Skipping invalid instinct ID during promotion: {cand['id']}", file=sys.stderr)
|
|
1059
|
-
continue
|
|
1060
|
-
|
|
1061
|
-
# Use the highest-confidence version
|
|
1062
|
-
best_entry = max(cand['entries'], key=lambda e: e[2].get('confidence', 0.5))
|
|
1063
|
-
inst = best_entry[2]
|
|
1064
|
-
|
|
1065
|
-
output_file = GLOBAL_PERSONAL_DIR / f"{cand['id']}.yaml"
|
|
1066
|
-
output_content = "---\n"
|
|
1067
|
-
output_content += f"id: {inst.get('id')}\n"
|
|
1068
|
-
output_content += f"trigger: {_yaml_quote(inst.get('trigger', 'unknown'))}\n"
|
|
1069
|
-
output_content += f"confidence: {cand['avg_confidence']}\n"
|
|
1070
|
-
output_content += f"domain: {inst.get('domain', 'general')}\n"
|
|
1071
|
-
output_content += f"source: auto-promoted\n"
|
|
1072
|
-
output_content += f"scope: global\n"
|
|
1073
|
-
output_content += f"promoted_date: {datetime.now(timezone.utc).isoformat().replace('+00:00', 'Z')}\n"
|
|
1074
|
-
output_content += f"seen_in_projects: {len(cand['entries'])}\n"
|
|
1075
|
-
output_content += "---\n\n"
|
|
1076
|
-
output_content += inst.get('content', '') + "\n"
|
|
1077
|
-
|
|
1078
|
-
output_file.write_text(output_content, encoding="utf-8")
|
|
1079
|
-
promoted += 1
|
|
1080
|
-
|
|
1081
|
-
print(f"\nPromoted {promoted} instincts to global scope.")
|
|
1082
|
-
return 0
|
|
1083
|
-
|
|
1084
|
-
|
|
1085
|
-
# ─────────────────────────────────────────────
|
|
1086
|
-
# Projects Command
|
|
1087
|
-
# ─────────────────────────────────────────────
|
|
1088
|
-
|
|
1089
|
-
def cmd_projects(args) -> int:
|
|
1090
|
-
"""List all known projects and their instinct counts."""
|
|
1091
|
-
registry = load_registry()
|
|
1092
|
-
|
|
1093
|
-
if not registry:
|
|
1094
|
-
print("No projects registered yet.")
|
|
1095
|
-
print("Projects are auto-detected when you use Claude Code in a git repo.")
|
|
1096
|
-
return 0
|
|
1097
|
-
|
|
1098
|
-
print(f"\n{'='*60}")
|
|
1099
|
-
print(f" KNOWN PROJECTS - {len(registry)} total")
|
|
1100
|
-
print(f"{'='*60}\n")
|
|
1101
|
-
|
|
1102
|
-
for pid, pinfo in sorted(registry.items(), key=lambda x: x[1].get('last_seen', ''), reverse=True):
|
|
1103
|
-
project_dir = PROJECTS_DIR / pid
|
|
1104
|
-
personal_dir = project_dir / "instincts" / "personal"
|
|
1105
|
-
inherited_dir = project_dir / "instincts" / "inherited"
|
|
1106
|
-
|
|
1107
|
-
personal_count = len(_load_instincts_from_dir(personal_dir, "personal", "project"))
|
|
1108
|
-
inherited_count = len(_load_instincts_from_dir(inherited_dir, "inherited", "project"))
|
|
1109
|
-
obs_file = project_dir / "observations.jsonl"
|
|
1110
|
-
if obs_file.exists():
|
|
1111
|
-
with open(obs_file, encoding="utf-8") as f:
|
|
1112
|
-
obs_count = sum(1 for _ in f)
|
|
1113
|
-
else:
|
|
1114
|
-
obs_count = 0
|
|
1115
|
-
|
|
1116
|
-
print(f" {pinfo.get('name', pid)} [{pid}]")
|
|
1117
|
-
print(f" Root: {pinfo.get('root', 'unknown')}")
|
|
1118
|
-
if pinfo.get('remote'):
|
|
1119
|
-
print(f" Remote: {pinfo['remote']}")
|
|
1120
|
-
print(f" Instincts: {personal_count} personal, {inherited_count} inherited")
|
|
1121
|
-
print(f" Observations: {obs_count} events")
|
|
1122
|
-
print(f" Last seen: {pinfo.get('last_seen', 'unknown')}")
|
|
1123
|
-
print()
|
|
1124
|
-
|
|
1125
|
-
# Global stats
|
|
1126
|
-
global_personal = len(_load_instincts_from_dir(GLOBAL_PERSONAL_DIR, "personal", "global"))
|
|
1127
|
-
global_inherited = len(_load_instincts_from_dir(GLOBAL_INHERITED_DIR, "inherited", "global"))
|
|
1128
|
-
print(f" GLOBAL")
|
|
1129
|
-
print(f" Instincts: {global_personal} personal, {global_inherited} inherited")
|
|
1130
|
-
|
|
1131
|
-
print(f"\n{'='*60}\n")
|
|
1132
|
-
return 0
|
|
1133
|
-
|
|
1134
|
-
|
|
1135
|
-
# ─────────────────────────────────────────────
|
|
1136
|
-
# Generate Evolved Structures
|
|
1137
|
-
# ─────────────────────────────────────────────
|
|
1138
|
-
|
|
1139
|
-
def _generate_evolved(skill_candidates: list, workflow_instincts: list, agent_candidates: list, evolved_dir: Path) -> list[str]:
|
|
1140
|
-
"""Generate skill/command/agent files from analyzed instinct clusters."""
|
|
1141
|
-
generated = []
|
|
1142
|
-
|
|
1143
|
-
# Generate skills from top candidates
|
|
1144
|
-
for cand in skill_candidates[:5]:
|
|
1145
|
-
trigger = cand['trigger'].strip()
|
|
1146
|
-
if not trigger:
|
|
1147
|
-
continue
|
|
1148
|
-
name = re.sub(r'[^a-z0-9]+', '-', trigger.lower()).strip('-')[:30]
|
|
1149
|
-
if not name:
|
|
1150
|
-
continue
|
|
1151
|
-
|
|
1152
|
-
skill_dir = evolved_dir / "skills" / name
|
|
1153
|
-
skill_dir.mkdir(parents=True, exist_ok=True)
|
|
1154
|
-
|
|
1155
|
-
content = f"# {name}\n\n"
|
|
1156
|
-
content += f"Evolved from {len(cand['instincts'])} instincts "
|
|
1157
|
-
content += f"(avg confidence: {cand['avg_confidence']:.0%})\n\n"
|
|
1158
|
-
content += f"## When to Apply\n\n"
|
|
1159
|
-
content += f"Trigger: {trigger}\n\n"
|
|
1160
|
-
content += f"## Actions\n\n"
|
|
1161
|
-
for inst in cand['instincts']:
|
|
1162
|
-
inst_content = inst.get('content', '')
|
|
1163
|
-
action_match = re.search(r'## Action\s*\n\s*(.+?)(?:\n\n|\n##|$)', inst_content, re.DOTALL)
|
|
1164
|
-
action = action_match.group(1).strip() if action_match else inst.get('id', 'unnamed')
|
|
1165
|
-
content += f"- {action}\n"
|
|
1166
|
-
|
|
1167
|
-
(skill_dir / "SKILL.md").write_text(content, encoding="utf-8")
|
|
1168
|
-
generated.append(str(skill_dir / "SKILL.md"))
|
|
1169
|
-
|
|
1170
|
-
# Generate commands from workflow instincts
|
|
1171
|
-
for inst in workflow_instincts[:5]:
|
|
1172
|
-
trigger = inst.get('trigger', 'unknown')
|
|
1173
|
-
cmd_name = re.sub(r'[^a-z0-9]+', '-', trigger.lower().replace('when ', '').replace('implementing ', ''))
|
|
1174
|
-
cmd_name = cmd_name.strip('-')[:20]
|
|
1175
|
-
if not cmd_name:
|
|
1176
|
-
continue
|
|
1177
|
-
|
|
1178
|
-
cmd_file = evolved_dir / "commands" / f"{cmd_name}.md"
|
|
1179
|
-
content = f"# {cmd_name}\n\n"
|
|
1180
|
-
content += f"Evolved from instinct: {inst.get('id', 'unnamed')}\n"
|
|
1181
|
-
content += f"Confidence: {inst.get('confidence', 0.5):.0%}\n\n"
|
|
1182
|
-
content += inst.get('content', '')
|
|
1183
|
-
|
|
1184
|
-
cmd_file.write_text(content, encoding="utf-8")
|
|
1185
|
-
generated.append(str(cmd_file))
|
|
1186
|
-
|
|
1187
|
-
# Generate agents from complex clusters
|
|
1188
|
-
for cand in agent_candidates[:3]:
|
|
1189
|
-
trigger = cand['trigger'].strip()
|
|
1190
|
-
agent_name = re.sub(r'[^a-z0-9]+', '-', trigger.lower()).strip('-')[:20]
|
|
1191
|
-
if not agent_name:
|
|
1192
|
-
continue
|
|
1193
|
-
|
|
1194
|
-
agent_file = evolved_dir / "agents" / f"{agent_name}.md"
|
|
1195
|
-
domains = ', '.join(cand['domains'])
|
|
1196
|
-
instinct_ids = [i.get('id', 'unnamed') for i in cand['instincts']]
|
|
1197
|
-
|
|
1198
|
-
content = f"---\nmodel: sonnet\ntools: Read, Grep, Glob\n---\n"
|
|
1199
|
-
content += f"# {agent_name}\n\n"
|
|
1200
|
-
content += f"Evolved from {len(cand['instincts'])} instincts "
|
|
1201
|
-
content += f"(avg confidence: {cand['avg_confidence']:.0%})\n"
|
|
1202
|
-
content += f"Domains: {domains}\n\n"
|
|
1203
|
-
content += f"## Source Instincts\n\n"
|
|
1204
|
-
for iid in instinct_ids:
|
|
1205
|
-
content += f"- {iid}\n"
|
|
1206
|
-
|
|
1207
|
-
agent_file.write_text(content, encoding="utf-8")
|
|
1208
|
-
generated.append(str(agent_file))
|
|
1209
|
-
|
|
1210
|
-
return generated
|
|
1211
|
-
|
|
1212
|
-
|
|
1213
|
-
# ─────────────────────────────────────────────
|
|
1214
|
-
# Pending Instinct Helpers
|
|
1215
|
-
# ─────────────────────────────────────────────
|
|
1216
|
-
|
|
1217
|
-
def _collect_pending_dirs() -> list[Path]:
|
|
1218
|
-
"""Return all pending instinct directories (global + per-project)."""
|
|
1219
|
-
dirs = []
|
|
1220
|
-
global_pending = GLOBAL_INSTINCTS_DIR / "pending"
|
|
1221
|
-
if global_pending.is_dir():
|
|
1222
|
-
dirs.append(global_pending)
|
|
1223
|
-
if PROJECTS_DIR.is_dir():
|
|
1224
|
-
for project_dir in sorted(PROJECTS_DIR.iterdir()):
|
|
1225
|
-
if project_dir.is_dir():
|
|
1226
|
-
pending = project_dir / "instincts" / "pending"
|
|
1227
|
-
if pending.is_dir():
|
|
1228
|
-
dirs.append(pending)
|
|
1229
|
-
return dirs
|
|
1230
|
-
|
|
1231
|
-
|
|
1232
|
-
def _parse_created_date(file_path: Path) -> Optional[datetime]:
|
|
1233
|
-
"""Parse the 'created' date from YAML frontmatter of an instinct file.
|
|
1234
|
-
|
|
1235
|
-
Falls back to file mtime if no 'created' field is found.
|
|
1236
|
-
"""
|
|
1237
|
-
try:
|
|
1238
|
-
content = file_path.read_text(encoding="utf-8")
|
|
1239
|
-
except (OSError, UnicodeDecodeError):
|
|
1240
|
-
return None
|
|
1241
|
-
|
|
1242
|
-
in_frontmatter = False
|
|
1243
|
-
for line in content.split('\n'):
|
|
1244
|
-
stripped = line.strip()
|
|
1245
|
-
if stripped == '---':
|
|
1246
|
-
if in_frontmatter:
|
|
1247
|
-
break # end of frontmatter without finding created
|
|
1248
|
-
in_frontmatter = True
|
|
1249
|
-
continue
|
|
1250
|
-
if in_frontmatter and ':' in line:
|
|
1251
|
-
key, value = line.split(':', 1)
|
|
1252
|
-
if key.strip() == 'created':
|
|
1253
|
-
date_str = value.strip().strip('"').strip("'")
|
|
1254
|
-
for fmt in (
|
|
1255
|
-
"%Y-%m-%dT%H:%M:%S%z",
|
|
1256
|
-
"%Y-%m-%dT%H:%M:%SZ",
|
|
1257
|
-
"%Y-%m-%dT%H:%M:%S",
|
|
1258
|
-
"%Y-%m-%d",
|
|
1259
|
-
):
|
|
1260
|
-
try:
|
|
1261
|
-
dt = datetime.strptime(date_str, fmt)
|
|
1262
|
-
if dt.tzinfo is None:
|
|
1263
|
-
dt = dt.replace(tzinfo=timezone.utc)
|
|
1264
|
-
return dt
|
|
1265
|
-
except ValueError:
|
|
1266
|
-
continue
|
|
1267
|
-
|
|
1268
|
-
# Fallback: file modification time
|
|
1269
|
-
try:
|
|
1270
|
-
mtime = file_path.stat().st_mtime
|
|
1271
|
-
return datetime.fromtimestamp(mtime, tz=timezone.utc)
|
|
1272
|
-
except OSError:
|
|
1273
|
-
return None
|
|
1274
|
-
|
|
1275
|
-
|
|
1276
|
-
def _collect_pending_instincts() -> list[dict]:
|
|
1277
|
-
"""Scan all pending directories and return info about each pending instinct.
|
|
1278
|
-
|
|
1279
|
-
Each dict contains: path, created, age_days, name, parent_dir.
|
|
1280
|
-
"""
|
|
1281
|
-
now = datetime.now(timezone.utc)
|
|
1282
|
-
results = []
|
|
1283
|
-
for pending_dir in _collect_pending_dirs():
|
|
1284
|
-
files = [
|
|
1285
|
-
f for f in sorted(pending_dir.iterdir())
|
|
1286
|
-
if f.is_file() and f.suffix.lower() in ALLOWED_INSTINCT_EXTENSIONS
|
|
1287
|
-
]
|
|
1288
|
-
for file_path in files:
|
|
1289
|
-
created = _parse_created_date(file_path)
|
|
1290
|
-
if created is None:
|
|
1291
|
-
print(f"Warning: could not parse age for pending instinct: {file_path.name}", file=sys.stderr)
|
|
1292
|
-
continue
|
|
1293
|
-
age = now - created
|
|
1294
|
-
results.append({
|
|
1295
|
-
"path": file_path,
|
|
1296
|
-
"created": created,
|
|
1297
|
-
"age_days": age.days,
|
|
1298
|
-
"name": file_path.stem,
|
|
1299
|
-
"parent_dir": str(pending_dir),
|
|
1300
|
-
})
|
|
1301
|
-
return results
|
|
1302
|
-
|
|
1303
|
-
|
|
1304
|
-
# ─────────────────────────────────────────────
|
|
1305
|
-
# Prune Command
|
|
1306
|
-
# ─────────────────────────────────────────────
|
|
1307
|
-
|
|
1308
|
-
def cmd_prune(args) -> int:
|
|
1309
|
-
"""Delete pending instincts older than the TTL threshold."""
|
|
1310
|
-
max_age = args.max_age
|
|
1311
|
-
dry_run = args.dry_run
|
|
1312
|
-
quiet = args.quiet
|
|
1313
|
-
|
|
1314
|
-
pending = _collect_pending_instincts()
|
|
1315
|
-
|
|
1316
|
-
expired = [p for p in pending if p["age_days"] >= max_age]
|
|
1317
|
-
remaining = [p for p in pending if p["age_days"] < max_age]
|
|
1318
|
-
|
|
1319
|
-
if dry_run:
|
|
1320
|
-
if not quiet:
|
|
1321
|
-
if expired:
|
|
1322
|
-
print(f"\n[DRY RUN] Would prune {len(expired)} pending instinct(s) older than {max_age} days:\n")
|
|
1323
|
-
for item in expired:
|
|
1324
|
-
print(f" - {item['name']} (age: {item['age_days']}d) — {item['path']}")
|
|
1325
|
-
else:
|
|
1326
|
-
print(f"No pending instincts older than {max_age} days.")
|
|
1327
|
-
print(f"\nSummary: {len(expired)} would be pruned, {len(remaining)} remaining")
|
|
1328
|
-
return 0
|
|
1329
|
-
|
|
1330
|
-
pruned = 0
|
|
1331
|
-
pruned_items = []
|
|
1332
|
-
for item in expired:
|
|
1333
|
-
try:
|
|
1334
|
-
item["path"].unlink()
|
|
1335
|
-
pruned += 1
|
|
1336
|
-
pruned_items.append(item)
|
|
1337
|
-
except OSError as e:
|
|
1338
|
-
if not quiet:
|
|
1339
|
-
print(f"Warning: Failed to delete {item['path']}: {e}", file=sys.stderr)
|
|
1340
|
-
|
|
1341
|
-
if not quiet:
|
|
1342
|
-
if pruned > 0:
|
|
1343
|
-
print(f"\nPruned {pruned} pending instinct(s) older than {max_age} days.")
|
|
1344
|
-
for item in pruned_items:
|
|
1345
|
-
print(f" - {item['name']} (age: {item['age_days']}d)")
|
|
1346
|
-
else:
|
|
1347
|
-
print(f"No pending instincts older than {max_age} days.")
|
|
1348
|
-
failed = len(expired) - pruned
|
|
1349
|
-
remaining_total = len(remaining) + failed
|
|
1350
|
-
print(f"\nSummary: {pruned} pruned, {remaining_total} remaining")
|
|
1351
|
-
|
|
1352
|
-
return 0
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
# ─────────────────────────────────────────────
|
|
1356
|
-
# Main
|
|
1357
|
-
# ─────────────────────────────────────────────
|
|
1358
|
-
|
|
1359
|
-
def main() -> int:
|
|
1360
|
-
_ensure_global_dirs()
|
|
1361
|
-
parser = argparse.ArgumentParser(description='Instinct CLI for Continuous Learning v2.1 (Project-Scoped)')
|
|
1362
|
-
subparsers = parser.add_subparsers(dest='command', help='Available commands')
|
|
1363
|
-
|
|
1364
|
-
# Status
|
|
1365
|
-
status_parser = subparsers.add_parser('status', help='Show instinct status (project + global)')
|
|
1366
|
-
|
|
1367
|
-
# Import
|
|
1368
|
-
import_parser = subparsers.add_parser('import', help='Import instincts')
|
|
1369
|
-
import_parser.add_argument('source', help='File path or URL')
|
|
1370
|
-
import_parser.add_argument('--dry-run', action='store_true', help='Preview without importing')
|
|
1371
|
-
import_parser.add_argument('--force', action='store_true', help='Skip confirmation')
|
|
1372
|
-
import_parser.add_argument('--min-confidence', type=float, help='Minimum confidence threshold')
|
|
1373
|
-
import_parser.add_argument('--scope', choices=['project', 'global'], default='project',
|
|
1374
|
-
help='Import scope (default: project)')
|
|
1375
|
-
|
|
1376
|
-
# Export
|
|
1377
|
-
export_parser = subparsers.add_parser('export', help='Export instincts')
|
|
1378
|
-
export_parser.add_argument('--output', '-o', help='Output file')
|
|
1379
|
-
export_parser.add_argument('--domain', help='Filter by domain')
|
|
1380
|
-
export_parser.add_argument('--min-confidence', type=float, help='Minimum confidence')
|
|
1381
|
-
export_parser.add_argument('--scope', choices=['project', 'global', 'all'], default='all',
|
|
1382
|
-
help='Export scope (default: all)')
|
|
1383
|
-
|
|
1384
|
-
# Evolve
|
|
1385
|
-
evolve_parser = subparsers.add_parser('evolve', help='Analyze and evolve instincts')
|
|
1386
|
-
evolve_parser.add_argument('--generate', action='store_true', help='Generate evolved structures')
|
|
1387
|
-
|
|
1388
|
-
# Promote (new in v2.1)
|
|
1389
|
-
promote_parser = subparsers.add_parser('promote', help='Promote project instincts to global scope')
|
|
1390
|
-
promote_parser.add_argument('instinct_id', nargs='?', help='Specific instinct ID to promote')
|
|
1391
|
-
promote_parser.add_argument('--force', action='store_true', help='Skip confirmation')
|
|
1392
|
-
promote_parser.add_argument('--dry-run', action='store_true', help='Preview without promoting')
|
|
1393
|
-
|
|
1394
|
-
# Projects (new in v2.1)
|
|
1395
|
-
projects_parser = subparsers.add_parser('projects', help='List known projects and instinct counts')
|
|
1396
|
-
|
|
1397
|
-
# Prune (pending instinct TTL)
|
|
1398
|
-
prune_parser = subparsers.add_parser('prune', help='Delete pending instincts older than TTL')
|
|
1399
|
-
prune_parser.add_argument('--max-age', type=int, default=PENDING_TTL_DAYS,
|
|
1400
|
-
help=f'Max age in days before pruning (default: {PENDING_TTL_DAYS})')
|
|
1401
|
-
prune_parser.add_argument('--dry-run', action='store_true', help='Preview without deleting')
|
|
1402
|
-
prune_parser.add_argument('--quiet', action='store_true', help='Suppress output (for automated use)')
|
|
1403
|
-
|
|
1404
|
-
args = parser.parse_args()
|
|
1405
|
-
|
|
1406
|
-
if args.command == 'status':
|
|
1407
|
-
return cmd_status(args)
|
|
1408
|
-
elif args.command == 'import':
|
|
1409
|
-
return cmd_import(args)
|
|
1410
|
-
elif args.command == 'export':
|
|
1411
|
-
return cmd_export(args)
|
|
1412
|
-
elif args.command == 'evolve':
|
|
1413
|
-
return cmd_evolve(args)
|
|
1414
|
-
elif args.command == 'promote':
|
|
1415
|
-
return cmd_promote(args)
|
|
1416
|
-
elif args.command == 'projects':
|
|
1417
|
-
return cmd_projects(args)
|
|
1418
|
-
elif args.command == 'prune':
|
|
1419
|
-
return cmd_prune(args)
|
|
1420
|
-
else:
|
|
1421
|
-
parser.print_help()
|
|
1422
|
-
return 1
|
|
1423
|
-
|
|
1424
|
-
|
|
1425
|
-
if __name__ == '__main__':
|
|
1426
|
-
sys.exit(main())
|