claude-flow-novice 2.15.3 → 2.15.5
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/.claude/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/.claude/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/.claude/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/.claude/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/.claude/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/.claude/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/.claude/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/.claude/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/.claude/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/.claude/commands/cfn-loop-cli.md +29 -6
- package/.claude/commands/switch-api.md +31 -10
- package/.claude/hooks/cfn-lint-sql-injection.sh +61 -0
- package/.claude/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/.claude/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/.claude/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/.claude/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/.claude/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/.claude/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +238 -29
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/.claude/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/.claude/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/.claude/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/.claude/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +6 -2
- package/.claude/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/.claude/skills/cfn-redis-coordination/redis-functions.sh +34 -0
- package/.claude/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/.claude/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/.claude/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/README.md +116 -475
- package/claude-assets/agents/cfn-dev-team/README.md +103 -0
- package/claude-assets/agents/cfn-dev-team/architecture/goal-planner.md +1 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +355 -6
- package/claude-assets/agents/cfn-dev-team/coordinators/consensus-builder.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/handoff-coordinator.md +82 -1
- package/claude-assets/agents/cfn-dev-team/coordinators/multi-sprint-coordinator.md +77 -15
- package/claude-assets/agents/cfn-dev-team/dev-ops/docker-specialist.md +99 -12
- package/claude-assets/agents/cfn-dev-team/dev-ops/github-commit-agent.md +1 -1
- package/claude-assets/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/dev-ops/monitoring-specialist.md +20 -1
- package/claude-assets/agents/cfn-dev-team/developers/api-gateway-specialist.md +97 -0
- package/claude-assets/agents/cfn-dev-team/developers/backend-developer.md +110 -13
- package/claude-assets/agents/cfn-dev-team/developers/data/data-engineer.md +106 -15
- package/claude-assets/agents/cfn-dev-team/developers/database/database-architect.md +115 -11
- package/claude-assets/agents/cfn-dev-team/developers/frontend/mobile-dev.md +94 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/react-frontend-engineer.md +87 -9
- package/claude-assets/agents/cfn-dev-team/developers/frontend/typescript-specialist.md +85 -7
- package/claude-assets/agents/cfn-dev-team/developers/frontend/ui-designer.md +160 -28
- package/claude-assets/agents/cfn-dev-team/developers/graphql-specialist.md +101 -19
- package/claude-assets/agents/cfn-dev-team/developers/rust-developer.md +108 -14
- package/claude-assets/agents/cfn-dev-team/reviewers/{reviewer.md → code-reviewer.md} +95 -8
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/code-quality-validator.md +107 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +98 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +95 -7
- package/claude-assets/agents/cfn-dev-team/reviewers/quality/security-specialist.md +136 -9
- package/claude-assets/agents/cfn-dev-team/testers/api-testing-specialist.md +108 -1
- package/claude-assets/agents/cfn-dev-team/testers/chaos-engineering-specialist.md +107 -13
- package/claude-assets/agents/cfn-dev-team/testers/contract-tester.md +737 -0
- package/claude-assets/agents/cfn-dev-team/testers/e2e/playwright-tester.md +1 -1
- package/claude-assets/agents/cfn-dev-team/testers/integration-tester.md +828 -0
- package/claude-assets/agents/cfn-dev-team/testers/interaction-tester.md +106 -7
- package/claude-assets/agents/cfn-dev-team/testers/load-testing-specialist.md +77 -0
- package/claude-assets/agents/cfn-dev-team/testers/mutation-testing-specialist.md +684 -0
- package/claude-assets/agents/cfn-dev-team/testers/playwright-tester.md +110 -1
- package/claude-assets/agents/cfn-dev-team/testers/tester.md +94 -7
- package/claude-assets/agents/cfn-dev-team/utility/code-booster.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/epic-creator.md +87 -13
- package/claude-assets/agents/cfn-dev-team/utility/memory-leak-specialist.md +103 -7
- package/claude-assets/agents/cfn-dev-team/utility/researcher.md +1 -3
- package/claude-assets/agents/cfn-dev-team/utility/z-ai-specialist.md +94 -7
- package/claude-assets/agents/docker-coordinators/cfn-docker-v3-coordinator.md +46 -0
- package/claude-assets/agents/project-only-agents/npm-package-specialist.md +1 -1
- package/claude-assets/cfn-extras/skills/advanced-features/cfn-agent-swap/recommend-swap.sh +59 -59
- package/claude-assets/cfn-extras/skills/analytics/cfn-improvement-recommender/recommend-improvements.sh +91 -91
- package/claude-assets/cfn-extras/skills/analytics/cfn-pattern-extraction/extract-patterns.sh +79 -79
- package/claude-assets/cfn-extras/skills/analytics/cfn-retrospective-report/generate-report.sh +100 -100
- package/claude-assets/cfn-extras/skills/analytics/cfn-telemetry/start-telemetry.sh +110 -110
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/add-bullet.sh +145 -145
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/log-merge.sh +67 -67
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/monitor-injection-performance.sh +137 -137
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/optimize-injection-pipeline.sh +168 -168
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/query-reflections.sh +35 -35
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/store-reflection.sh +45 -45
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/track-ab-test.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-ace-system/update-reflection.sh +41 -41
- package/claude-assets/cfn-extras/skills/deprecated/cfn-cli-setup/validate-cli-environment.sh +191 -191
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/create-campaign.sh +231 -231
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/get-campaign-performance.sh +190 -190
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/pause-campaign.sh +142 -142
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/set-budget.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-ad-campaigns/operations/update-bid-strategy.sh +133 -133
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/get-conversation-history.sh +121 -121
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/qualify-lead.sh +156 -156
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/schedule-demo.sh +181 -181
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/send-message.sh +137 -137
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-chatbot-conversations/operations/transfer-to-human.sh +179 -179
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/create-campaign.sh +183 -183
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/get-delivery-status.sh +139 -139
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/opt-out.sh +150 -150
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/schedule-campaign.sh +187 -187
- package/claude-assets/cfn-extras/skills/marketing/cfn-marketing-sms-campaigns/operations/send-sms.sh +181 -181
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/test-web-portal-skill.sh +50 -50
- package/claude-assets/cfn-extras/skills/ui-portal/cfn-web-portal/validate-deployment.sh +84 -84
- package/claude-assets/cfn-extras/skills/utility/cfn-environment-sanitization/sanitize-environment.sh +243 -243
- package/claude-assets/commands/cfn-loop-cli.md +29 -6
- package/claude-assets/commands/switch-api.md +31 -10
- package/claude-assets/hooks/cfn-lint-sql-injection.sh +61 -0
- package/claude-assets/hooks/cfn-post-edit-cfn-retrospective.sh +33 -2
- package/claude-assets/hooks/cfn-pre-edit-security-warning.sh +40 -0
- package/claude-assets/hooks/detect-hardcoded-credentials.sh +212 -0
- package/claude-assets/skills/SKILL_TEMPLATE.md +774 -0
- package/claude-assets/skills/agent-lifecycle/execute-lifecycle-hook.sh +84 -113
- package/claude-assets/skills/agent-lifecycle/simple-audit.sh +33 -6
- package/claude-assets/skills/agent-template-generator/SKILL.md +440 -0
- package/claude-assets/skills/agent-template-generator/generate-agent.sh +405 -0
- package/claude-assets/skills/agent-validation-linter/SKILL.md +589 -0
- package/claude-assets/skills/agent-validation-linter/lint-agents.sh +271 -0
- package/claude-assets/skills/bootstrap/bash-fundamentals.md +786 -0
- package/claude-assets/skills/bootstrap/database-connection.md +464 -0
- package/claude-assets/skills/bootstrap/error-handling.md +580 -0
- package/claude-assets/skills/bootstrap/file-operations.md +699 -0
- package/claude-assets/skills/bootstrap/skill-loader.md +616 -0
- package/claude-assets/skills/bootstrap/sqlite-params.sh +287 -0
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh +22 -24
- package/claude-assets/skills/cfn-automatic-memory-persistence/test-memory-persistence.sh +17 -16
- package/claude-assets/skills/cfn-deployment/SKILL.md +293 -0
- package/claude-assets/skills/cfn-deployment/execute.sh +21 -0
- package/claude-assets/skills/cfn-docker-agent-spawning/SKILL.md +28 -4
- package/claude-assets/skills/cfn-docker-agent-spawning/spawn-agent.sh +3 -1
- package/claude-assets/skills/cfn-docker-loop-orchestration/orchestrate.sh +224 -20
- package/claude-assets/skills/cfn-environment-sanitization/sanitize-environment.sh +38 -0
- package/claude-assets/skills/cfn-error-batching-strategy/lib/core-functions.sh +47 -47
- package/claude-assets/skills/cfn-file-operations/SKILL.md +290 -0
- package/claude-assets/skills/cfn-file-operations/execute.sh +129 -0
- package/claude-assets/skills/cfn-file-operations/lib/atomic-write.sh +294 -0
- package/claude-assets/skills/cfn-file-operations/lib/lock.sh +361 -0
- package/claude-assets/skills/cfn-file-operations/test.sh +369 -0
- package/claude-assets/skills/cfn-log-operations/SKILL.md +308 -0
- package/claude-assets/skills/cfn-log-operations/execute.sh +420 -0
- package/claude-assets/skills/cfn-log-operations/lib/rotate.sh +406 -0
- package/claude-assets/skills/cfn-log-operations/lib/search.sh +448 -0
- package/claude-assets/skills/cfn-log-operations/test.sh +394 -0
- package/claude-assets/skills/cfn-loop-orchestration/helpers/gate-check.sh +550 -46
- package/claude-assets/skills/cfn-loop-orchestration/helpers/parse-test-results.sh +277 -0
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh +238 -29
- package/claude-assets/skills/cfn-loop-orchestration/security_utils.sh +24 -0
- package/claude-assets/skills/cfn-loop-orchestration/test-iteration-context-injection.sh +366 -0
- package/claude-assets/skills/cfn-parameterized-queries/SKILL.md +339 -0
- package/claude-assets/skills/cfn-playbook/query-playbook.sh +19 -15
- package/claude-assets/skills/cfn-playbook/update-playbook.sh +25 -14
- package/claude-assets/skills/cfn-process-instrumentation/instrument-process.sh +44 -0
- package/claude-assets/skills/cfn-promotion/SKILL.md +305 -0
- package/claude-assets/skills/cfn-redis-coordination/CENTRALIZED_REDIS_WRAPPER.md +319 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-log.sh.bak +124 -0
- package/claude-assets/skills/cfn-redis-coordination/agent-recovery.sh +2 -2
- package/claude-assets/skills/cfn-redis-coordination/collect-confidence-scores.sh +30 -0
- package/claude-assets/skills/cfn-redis-coordination/get-context.sh +33 -0
- package/claude-assets/skills/cfn-redis-coordination/get-success-criteria.sh +54 -0
- package/claude-assets/skills/cfn-redis-coordination/invoke-waiting-mode.sh +6 -2
- package/claude-assets/skills/cfn-redis-coordination/redis-cli-wrapper.sh +24 -3
- package/claude-assets/skills/cfn-redis-coordination/redis-functions.sh +34 -0
- package/claude-assets/skills/cfn-redis-coordination/report-completion.sh +24 -31
- package/claude-assets/skills/cfn-redis-coordination/store-context.sh +4 -0
- package/claude-assets/skills/cfn-redis-coordination/store-success-criteria.sh +85 -0
- package/claude-assets/skills/cfn-redis-coordination/update-all-scripts.sh +67 -0
- package/claude-assets/skills/cfn-skill-loader/SKILL.md +466 -0
- package/claude-assets/skills/cfn-skill-loader/execute.sh +344 -0
- package/claude-assets/skills/cfn-sqlite-memory/ttl-cleanup.sh +17 -25
- package/claude-assets/skills/cfn-task-audit/get-audit-data.sh +42 -21
- package/claude-assets/skills/cfn-task-audit/store-task-audit.sh +17 -10
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh +17 -14
- package/claude-assets/skills/cfn-test-runner/detect-regressions.sh.backup-1763392821 +55 -0
- package/claude-assets/skills/cfn-test-runner/store-benchmarks.sh +17 -19
- package/claude-assets/skills/cfn-transparency-middleware/test-e2e.sh +15 -0
- package/claude-assets/skills/cfn-transparency-middleware/tests/input-validation.sh +15 -0
- package/claude-assets/skills/cfn-utilities/SKILL.md +237 -0
- package/claude-assets/skills/cfn-utilities/execute.sh +32 -0
- package/claude-assets/skills/cfn-utilities/lib/errors.sh +56 -0
- package/claude-assets/skills/cfn-utilities/lib/file-ops.sh +164 -0
- package/claude-assets/skills/cfn-utilities/lib/logging.sh +77 -0
- package/claude-assets/skills/cfn-utilities/lib/retry.sh +127 -0
- package/claude-assets/skills/cfn-utilities/test.sh +317 -0
- package/claude-assets/skills/integration/agent-handoff.sh +62 -64
- package/claude-assets/skills/json-validation/SKILL.md +431 -0
- package/claude-assets/skills/json-validation/test-validate-success-criteria.sh +421 -0
- package/claude-assets/skills/json-validation/validate-success-criteria.sh +197 -0
- package/claude-assets/skills/redis-coordination/validate-parameters.sh +34 -0
- package/claude-assets/skills/workflow-codification/DEPLOY_QUICK_REFERENCE.md +106 -0
- package/claude-assets/skills/workflow-codification/PROPAGATE_UPDATE_QUICK_REFERENCE.md +366 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh +481 -0
- package/claude-assets/skills/workflow-codification/deploy-approved-skill.sh.backup-1763392820 +512 -0
- package/claude-assets/skills/workflow-codification/lib/security-utils.sh +204 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh +648 -0
- package/claude-assets/skills/workflow-codification/propagate-skill-update.sh.backup-1763392820 +664 -0
- package/claude-assets/skills/workflow-codification/test-integration.sh +15 -0
- package/claude-assets/skills/workflow-codification/test-metadata-update.sh +350 -0
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh +55 -14
- package/claude-assets/skills/workflow-codification/track-cost-savings.sh.backup-1763392821 +445 -0
- package/claude-assets/skills/workflow-codification/track-edge-case.sh +27 -60
- package/claude-assets/skills/workflow-codification/workflow-codification.db +0 -0
- package/dist/ace/ace-curator.js +10 -2
- package/dist/ace/ace-curator.js.map +1 -1
- package/dist/ace/ace-generator.js +4 -0
- package/dist/ace/ace-generator.js.map +1 -1
- package/dist/ace/ace-reflector.js +1 -1
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/ace/context-injection.js +24 -2
- package/dist/ace/context-injection.js.map +1 -1
- package/dist/agents/task-agent-integration.js +1 -1
- package/dist/agents/task-agent-integration.js.map +1 -1
- package/dist/api/health-endpoints.js +390 -0
- package/dist/api/health-endpoints.js.map +1 -0
- package/dist/cli/agent-executor.js +4 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/agent-prompt-builder.js +89 -1
- package/dist/cli/agent-prompt-builder.js.map +1 -1
- package/dist/cli/agent-spawn.js +130 -37
- package/dist/cli/agent-spawn.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/dist/cli/conversation-fork-cleanup.js +201 -0
- package/dist/cli/conversation-fork-cleanup.js.map +1 -0
- package/dist/cli/conversation-fork.js +16 -3
- package/dist/cli/conversation-fork.js.map +1 -1
- package/dist/cli/skill-cache-validator.js +412 -0
- package/dist/cli/skill-cache-validator.js.map +1 -0
- package/dist/cli/skill-cli.js +991 -0
- package/dist/cli/skill-cli.js.map +1 -0
- package/dist/cli/skill-execution-logger.js +284 -0
- package/dist/cli/skill-execution-logger.js.map +1 -0
- package/dist/cli/skill-loader.js +457 -0
- package/dist/cli/skill-loader.js.map +1 -0
- package/dist/coordination/event-bus.js +2 -2
- package/dist/coordination/event-bus.js.map +1 -1
- package/dist/coordination/fleet-manager.js +1 -1
- package/dist/coordination/fleet-manager.js.map +1 -1
- package/dist/coordination/index.js +23 -9
- package/dist/coordination/index.js.map +1 -1
- package/dist/coordination/types/fleet-manager.types.js.map +1 -1
- package/dist/db/migration-manager.js +483 -0
- package/dist/db/migration-manager.js.map +1 -0
- package/dist/db/skills-query.js +535 -0
- package/dist/db/skills-query.js.map +1 -0
- package/dist/integration/DatabaseHandoff.js +1 -1
- package/dist/integration/DatabaseHandoff.js.map +1 -1
- package/dist/jobs/edge-case-analyzer.js +367 -0
- package/dist/jobs/edge-case-analyzer.js.map +1 -0
- package/dist/jobs/promotion-sla-enforcer.js +288 -0
- package/dist/jobs/promotion-sla-enforcer.js.map +1 -0
- package/dist/lib/agent-output-parser.js.map +1 -1
- package/dist/lib/agent-output-validator.js.map +1 -1
- package/dist/lib/agent-workspace.js +281 -0
- package/dist/lib/agent-workspace.js.map +1 -0
- package/dist/lib/atomic-file-writer.js +377 -0
- package/dist/lib/atomic-file-writer.js.map +1 -0
- package/dist/lib/backup-manager.js +779 -0
- package/dist/lib/backup-manager.js.map +1 -0
- package/dist/lib/checkpoint-manager.js +837 -0
- package/dist/lib/checkpoint-manager.js.map +1 -0
- package/dist/lib/circuit-breaker.js +340 -0
- package/dist/lib/circuit-breaker.js.map +1 -0
- package/dist/lib/completion-signal-handler.js +243 -0
- package/dist/lib/completion-signal-handler.js.map +1 -0
- package/dist/lib/config-manager.js +312 -0
- package/dist/lib/config-manager.js.map +1 -0
- package/dist/lib/config-migrator.js +386 -0
- package/dist/lib/config-migrator.js.map +1 -0
- package/dist/lib/config-validator.js.map +1 -1
- package/dist/lib/correlation-cache.js +311 -0
- package/dist/lib/correlation-cache.js.map +1 -0
- package/dist/lib/correlation.js +263 -0
- package/dist/lib/correlation.js.map +1 -0
- package/dist/lib/database-service/connection-pool-manager.js +520 -0
- package/dist/lib/database-service/connection-pool-manager.js.map +1 -0
- package/dist/lib/database-service/correlation.js +329 -0
- package/dist/lib/database-service/correlation.js.map +1 -0
- package/dist/lib/database-service/errors.js +120 -0
- package/dist/lib/database-service/errors.js.map +1 -0
- package/dist/lib/database-service/index.js +168 -0
- package/dist/lib/database-service/index.js.map +1 -0
- package/dist/lib/database-service/postgres-adapter.js +526 -0
- package/dist/lib/database-service/postgres-adapter.js.map +1 -0
- package/dist/lib/database-service/redis-adapter.js +360 -0
- package/dist/lib/database-service/redis-adapter.js.map +1 -0
- package/dist/lib/database-service/sqlite-adapter.js +544 -0
- package/dist/lib/database-service/sqlite-adapter.js.map +1 -0
- package/dist/lib/database-service/transaction-manager.js +773 -0
- package/dist/lib/database-service/transaction-manager.js.map +1 -0
- package/dist/lib/database-service/types.js +23 -0
- package/dist/lib/database-service/types.js.map +1 -0
- package/dist/lib/deadlock-resolver.js +292 -0
- package/dist/lib/deadlock-resolver.js.map +1 -0
- package/dist/lib/distributed-lock.js +451 -0
- package/dist/lib/distributed-lock.js.map +1 -0
- package/dist/lib/edge-case-deduplicator.js +227 -0
- package/dist/lib/edge-case-deduplicator.js.map +1 -0
- package/dist/lib/encryption-manager.js +322 -0
- package/dist/lib/encryption-manager.js.map +1 -0
- package/dist/lib/error-aggregator.js +234 -0
- package/dist/lib/error-aggregator.js.map +1 -0
- package/dist/lib/errors.js +287 -0
- package/dist/lib/errors.js.map +1 -0
- package/dist/lib/file-lock-manager.js +578 -0
- package/dist/lib/file-lock-manager.js.map +1 -0
- package/dist/lib/file-operations.js +367 -0
- package/dist/lib/file-operations.js.map +1 -0
- package/dist/lib/idempotent-write.js +237 -0
- package/dist/lib/idempotent-write.js.map +1 -0
- package/dist/lib/integration-schema-validator.js +522 -0
- package/dist/lib/integration-schema-validator.js.map +1 -0
- package/dist/lib/lock-health-monitor.js +298 -0
- package/dist/lib/lock-health-monitor.js.map +1 -0
- package/dist/lib/log-shipper.js +422 -0
- package/dist/lib/log-shipper.js.map +1 -0
- package/dist/lib/logging.js +146 -0
- package/dist/lib/logging.js.map +1 -0
- package/dist/lib/message-deduplicator.js +439 -0
- package/dist/lib/message-deduplicator.js.map +1 -0
- package/dist/lib/multi-system-query.js +604 -0
- package/dist/lib/multi-system-query.js.map +1 -0
- package/dist/lib/orphan-detector.js +332 -0
- package/dist/lib/orphan-detector.js.map +1 -0
- package/dist/lib/password-generator.js +166 -0
- package/dist/lib/password-generator.js.map +1 -0
- package/dist/lib/path-validator.js +429 -0
- package/dist/lib/path-validator.js.map +1 -0
- package/dist/lib/query-translator.js +905 -0
- package/dist/lib/query-translator.js.map +1 -0
- package/dist/lib/queue-recovery.js +469 -0
- package/dist/lib/queue-recovery.js.map +1 -0
- package/dist/lib/redis-queue-manager.js +512 -0
- package/dist/lib/redis-queue-manager.js.map +1 -0
- package/dist/lib/reflection-archiver.js +272 -0
- package/dist/lib/reflection-archiver.js.map +1 -0
- package/dist/lib/retry-manager.js +453 -0
- package/dist/lib/retry-manager.js.map +1 -0
- package/dist/lib/retry.js +262 -0
- package/dist/lib/retry.js.map +1 -0
- package/dist/lib/schema-transform.js +695 -0
- package/dist/lib/schema-transform.js.map +1 -0
- package/dist/lib/schema-validator.js +491 -0
- package/dist/lib/schema-validator.js.map +1 -0
- package/dist/lib/skill-cache.js +297 -0
- package/dist/lib/skill-cache.js.map +1 -0
- package/dist/lib/skill-content-manager.js +337 -0
- package/dist/lib/skill-content-manager.js.map +1 -0
- package/dist/lib/skill-frontmatter-parser.js +237 -0
- package/dist/lib/skill-frontmatter-parser.js.map +1 -0
- package/dist/lib/skill-git-integration.js +275 -0
- package/dist/lib/skill-git-integration.js.map +1 -0
- package/dist/lib/skill-markdown-validator.js +396 -0
- package/dist/lib/skill-markdown-validator.js.map +1 -0
- package/dist/lib/skill-output-parser.js +312 -0
- package/dist/lib/skill-output-parser.js.map +1 -0
- package/dist/lib/unified-query-api.js +467 -0
- package/dist/lib/unified-query-api.js.map +1 -0
- package/dist/middleware/auth-middleware.js +350 -0
- package/dist/middleware/auth-middleware.js.map +1 -0
- package/dist/middleware/schema-validation.js +347 -0
- package/dist/middleware/schema-validation.js.map +1 -0
- package/dist/providers/anthropic-provider.js +1 -1
- package/dist/providers/anthropic-provider.js.map +1 -1
- package/dist/providers/provider-factory.js +2 -2
- package/dist/providers/provider-factory.js.map +1 -1
- package/dist/services/edge-case-analyzer.js +321 -0
- package/dist/services/edge-case-analyzer.js.map +1 -0
- package/dist/services/edge-case-deduplicator.js +266 -0
- package/dist/services/edge-case-deduplicator.js.map +1 -0
- package/dist/services/edge-case-detector.js +337 -0
- package/dist/services/edge-case-detector.js.map +1 -0
- package/dist/services/edge-case-tracker.js +547 -0
- package/dist/services/edge-case-tracker.js.map +1 -0
- package/dist/services/health-check-system.js +586 -0
- package/dist/services/health-check-system.js.map +1 -0
- package/dist/services/metrics-logger.js +412 -0
- package/dist/services/metrics-logger.js.map +1 -0
- package/dist/services/patch-generator.js +378 -0
- package/dist/services/patch-generator.js.map +1 -0
- package/dist/services/patch-validator.js +337 -0
- package/dist/services/patch-validator.js.map +1 -0
- package/dist/services/performance-monitor.js +811 -0
- package/dist/services/performance-monitor.js.map +1 -0
- package/dist/services/promotion-pipeline.js +918 -0
- package/dist/services/promotion-pipeline.js.map +1 -0
- package/dist/services/promotion-validator.js +394 -0
- package/dist/services/promotion-validator.js.map +1 -0
- package/dist/services/reflection-logger.js +388 -0
- package/dist/services/reflection-logger.js.map +1 -0
- package/dist/services/skill-deployment.js +472 -0
- package/dist/services/skill-deployment.js.map +1 -0
- package/dist/services/skill-loader.js +427 -0
- package/dist/services/skill-loader.js.map +1 -0
- package/dist/services/skill-promotion.js +372 -0
- package/dist/services/skill-promotion.js.map +1 -0
- package/dist/services/skill-validator.js +454 -0
- package/dist/services/skill-validator.js.map +1 -0
- package/dist/services/skill-versioning.js +244 -0
- package/dist/services/skill-versioning.js.map +1 -0
- package/dist/services/workspace-supervisor.js +597 -0
- package/dist/services/workspace-supervisor.js.map +1 -0
- package/dist/types/edge-case.js +45 -0
- package/dist/types/edge-case.js.map +1 -0
- package/docs/BUG_19_MEMORY_LEAK_TASK_MODE.md +405 -0
- package/docs/MEMORY_CLEANUP_GUIDE.md +358 -0
- package/docs/MEMORY_LEAK_FIX_SUMMARY.md +322 -0
- package/docs/REDIS_CLEANUP_EXECUTIVE_SUMMARY.md +319 -0
- package/docs/REDIS_CLEANUP_VERIFICATION_REPORT.md +574 -0
- package/package.json +35 -4
- package/readme/README.md +53 -5
- package/scripts/backup-cleanup.sh +627 -0
- package/scripts/cleanup-workspaces.sh +412 -0
- package/scripts/cleanup-yaml-configs.sh +141 -0
- package/scripts/deploy-approved-skills.sh +263 -0
- package/scripts/health-check.sh +447 -0
- package/scripts/log-aggregator.sh +554 -0
- package/scripts/log-monitor.sh +629 -0
- package/scripts/manage-agent-workspaces.sh +434 -0
- package/scripts/migrate-schema.sh +533 -0
- package/scripts/promote-staged-skills.sh +423 -0
- package/scripts/verify-no-secrets.sh +88 -35
- package/scripts/verify-redis-cleanup.sh +173 -0
- package/tests/README.md +84 -0
- package/tests/test-memory-leak-task-mode.sh +435 -0
- package/.claude/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/.claude/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/.claude/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/.claude/skills/agent-lifecycle/SKILL.md +0 -60
- package/.claude/skills/agent-lifecycle/execute-lifecycle-hook.sh +0 -573
- package/.claude/skills/agent-lifecycle/simple-audit.sh +0 -31
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
- package/README.md.backup_before_replace +0 -781
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/adaptive-coordinator.md.backup +0 -161
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/blocking-coordinator-example.md.backup +0 -728
- package/claude-assets/cfn-extras/agents/deprecated-coordinators/mesh-coordinator.md.backup +0 -131
- package/claude-assets/skills/cfn-agent-spawning/spawn-agent.sh.backup +0 -273
- package/claude-assets/skills/cfn-loop-orchestration/orchestrate.sh.backup +0 -949
|
@@ -0,0 +1,466 @@
|
|
|
1
|
+
# CFN Skill Loader
|
|
2
|
+
|
|
3
|
+
**Version:** 1.0.0
|
|
4
|
+
**Status:** Active
|
|
5
|
+
**Namespace:** cfn
|
|
6
|
+
**Priority:** 10 (Bootstrap)
|
|
7
|
+
|
|
8
|
+
## Purpose
|
|
9
|
+
|
|
10
|
+
Provides high-performance contextual skill loading for agent prompt building with LRU caching and SHA256 hash-based validation. Ensures agents receive only relevant skills based on their type, task context, and CFN Loop phase.
|
|
11
|
+
|
|
12
|
+
## When to Use This Skill
|
|
13
|
+
|
|
14
|
+
**Mandatory for:**
|
|
15
|
+
- Agent prompt building (all agents)
|
|
16
|
+
- Agent spawn operations
|
|
17
|
+
- Skill content integrity validation
|
|
18
|
+
- Performance-critical skill loading (<100ms warm load)
|
|
19
|
+
|
|
20
|
+
**Use when:**
|
|
21
|
+
- Building agent prompts with contextual skills
|
|
22
|
+
- Validating skill content hasn't been modified
|
|
23
|
+
- Implementing cache invalidation strategies
|
|
24
|
+
- Optimizing agent spawn performance
|
|
25
|
+
|
|
26
|
+
## Core Capabilities
|
|
27
|
+
|
|
28
|
+
### 1. Contextual Skill Loading
|
|
29
|
+
|
|
30
|
+
**Load skills based on agent type and task context:**
|
|
31
|
+
```typescript
|
|
32
|
+
import { SkillLoader } from '../src/cli/skill-loader';
|
|
33
|
+
|
|
34
|
+
const loader = new SkillLoader(dbService, logger);
|
|
35
|
+
|
|
36
|
+
const result = await loader.loadContextualSkills({
|
|
37
|
+
agentType: 'backend-developer',
|
|
38
|
+
taskContext: ['authentication', 'security', 'api'],
|
|
39
|
+
maxSkills: 20,
|
|
40
|
+
includeBootstrap: true,
|
|
41
|
+
phase: 'loop3'
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
console.log(`Loaded ${result.totalSkills} skills in ${result.loadTimeMs}ms`);
|
|
45
|
+
console.log(`Cache hits: ${result.cacheHitCount}, misses: ${result.cacheMissCount}`);
|
|
46
|
+
```
|
|
47
|
+
|
|
48
|
+
### 2. Hash-Based Validation
|
|
49
|
+
|
|
50
|
+
**Validate skill content integrity:**
|
|
51
|
+
```typescript
|
|
52
|
+
import { SkillCacheValidator } from '../src/cli/skill-cache-validator';
|
|
53
|
+
|
|
54
|
+
const validator = new SkillCacheValidator();
|
|
55
|
+
|
|
56
|
+
// Compute hash
|
|
57
|
+
const contentHash = validator.computeHash(skillContent);
|
|
58
|
+
|
|
59
|
+
// Validate content
|
|
60
|
+
const validation = validator.validateContent(skillContent, expectedHash);
|
|
61
|
+
|
|
62
|
+
if (!validation.isValid) {
|
|
63
|
+
console.error(`Validation failed: ${validation.reason}`);
|
|
64
|
+
}
|
|
65
|
+
```
|
|
66
|
+
|
|
67
|
+
### 3. LRU Cache Management
|
|
68
|
+
|
|
69
|
+
**Manage skill caching for optimal performance:**
|
|
70
|
+
```typescript
|
|
71
|
+
// Get cache statistics
|
|
72
|
+
const stats = loader.getCacheStats();
|
|
73
|
+
console.log(`Cache: ${stats.size}/${stats.maxSize}, TTL: ${stats.ttlMinutes}min`);
|
|
74
|
+
|
|
75
|
+
// Preload skills for warm-up
|
|
76
|
+
await loader.preloadSkills(['cfn-coordination', 'hook-pipeline']);
|
|
77
|
+
|
|
78
|
+
// Clear cache on demand
|
|
79
|
+
loader.clearCache();
|
|
80
|
+
```
|
|
81
|
+
|
|
82
|
+
### 4. Database Query Layer
|
|
83
|
+
|
|
84
|
+
**Type-safe SQL queries for skill metadata:**
|
|
85
|
+
```typescript
|
|
86
|
+
import { SkillsQueryBuilder } from '../src/db/skills-query';
|
|
87
|
+
|
|
88
|
+
// Get skills by agent type with context
|
|
89
|
+
const { sql, params } = SkillsQueryBuilder.getSkillsByAgentType(
|
|
90
|
+
'backend-developer',
|
|
91
|
+
['authentication', 'security'],
|
|
92
|
+
'loop3'
|
|
93
|
+
);
|
|
94
|
+
|
|
95
|
+
const skills = await sqlite.raw(sql, params);
|
|
96
|
+
```
|
|
97
|
+
|
|
98
|
+
## Performance Targets
|
|
99
|
+
|
|
100
|
+
**SLA Guarantees:**
|
|
101
|
+
- Cold load: <1s (first load, empty cache)
|
|
102
|
+
- Warm load: <100ms (cached skills)
|
|
103
|
+
- Cache TTL: 5 minutes (configurable)
|
|
104
|
+
- Cache size: 100 skills (LRU eviction)
|
|
105
|
+
|
|
106
|
+
**Validation:**
|
|
107
|
+
```bash
|
|
108
|
+
# Run performance benchmarks
|
|
109
|
+
npm test -- tests/skill-loader.test.ts --testNamePattern="performance"
|
|
110
|
+
```
|
|
111
|
+
|
|
112
|
+
## Integration Points
|
|
113
|
+
|
|
114
|
+
### Agent Prompt Builder
|
|
115
|
+
|
|
116
|
+
**Used by `src/cli/agent-prompt-builder.ts`:**
|
|
117
|
+
```typescript
|
|
118
|
+
import { getGlobalLoader } from './skill-loader';
|
|
119
|
+
|
|
120
|
+
const loader = getGlobalLoader(dbService, logger);
|
|
121
|
+
|
|
122
|
+
const { skills } = await loader.loadContextualSkills({
|
|
123
|
+
agentType: agentProfile.type,
|
|
124
|
+
taskContext: extractTaskKeywords(taskDescription),
|
|
125
|
+
maxSkills: 20,
|
|
126
|
+
includeBootstrap: true,
|
|
127
|
+
});
|
|
128
|
+
|
|
129
|
+
// Inject skills into agent prompt
|
|
130
|
+
const skillsSection = skills.map(s => s.content).join('\n\n---\n\n');
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
### Database Service
|
|
134
|
+
|
|
135
|
+
**Requires SQLite adapter configuration:**
|
|
136
|
+
```typescript
|
|
137
|
+
import { DatabaseService } from '../lib/database-service';
|
|
138
|
+
|
|
139
|
+
const dbService = new DatabaseService({
|
|
140
|
+
sqlite: {
|
|
141
|
+
type: 'sqlite',
|
|
142
|
+
database: './claude-assets/skills/cfn-redis-coordination/data/cfn-loop.db',
|
|
143
|
+
},
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
await dbService.connect();
|
|
147
|
+
|
|
148
|
+
const loader = new SkillLoader(dbService, logger);
|
|
149
|
+
```
|
|
150
|
+
|
|
151
|
+
## Database Schema
|
|
152
|
+
|
|
153
|
+
### Skills Table
|
|
154
|
+
|
|
155
|
+
```sql
|
|
156
|
+
CREATE TABLE IF NOT EXISTS skills (
|
|
157
|
+
id TEXT PRIMARY KEY,
|
|
158
|
+
name TEXT NOT NULL,
|
|
159
|
+
version TEXT NOT NULL,
|
|
160
|
+
file_path TEXT NOT NULL,
|
|
161
|
+
content_hash TEXT NOT NULL,
|
|
162
|
+
namespace TEXT NOT NULL DEFAULT 'cfn',
|
|
163
|
+
status TEXT NOT NULL DEFAULT 'active' CHECK(status IN ('active', 'deprecated', 'experimental')),
|
|
164
|
+
priority INTEGER NOT NULL DEFAULT 5 CHECK(priority BETWEEN 1 AND 10),
|
|
165
|
+
tags TEXT,
|
|
166
|
+
created_at TEXT NOT NULL DEFAULT (datetime('now')),
|
|
167
|
+
updated_at TEXT NOT NULL DEFAULT (datetime('now'))
|
|
168
|
+
);
|
|
169
|
+
```
|
|
170
|
+
|
|
171
|
+
### Agent-Skill Mappings
|
|
172
|
+
|
|
173
|
+
```sql
|
|
174
|
+
CREATE TABLE IF NOT EXISTS agent_skill_mappings (
|
|
175
|
+
agent_type TEXT NOT NULL,
|
|
176
|
+
skill_id TEXT NOT NULL,
|
|
177
|
+
is_required BOOLEAN NOT NULL DEFAULT 0,
|
|
178
|
+
priority INTEGER NOT NULL DEFAULT 5 CHECK(priority BETWEEN 1 AND 10),
|
|
179
|
+
phase TEXT,
|
|
180
|
+
context_keywords TEXT,
|
|
181
|
+
PRIMARY KEY (agent_type, skill_id),
|
|
182
|
+
FOREIGN KEY (skill_id) REFERENCES skills(id) ON DELETE CASCADE
|
|
183
|
+
);
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
### Usage Analytics
|
|
187
|
+
|
|
188
|
+
```sql
|
|
189
|
+
CREATE TABLE IF NOT EXISTS skill_usage_log (
|
|
190
|
+
id TEXT PRIMARY KEY,
|
|
191
|
+
skill_id TEXT NOT NULL,
|
|
192
|
+
agent_id TEXT NOT NULL,
|
|
193
|
+
agent_type TEXT NOT NULL,
|
|
194
|
+
loaded_at TEXT NOT NULL,
|
|
195
|
+
execution_time_ms INTEGER NOT NULL,
|
|
196
|
+
confidence_impact REAL,
|
|
197
|
+
FOREIGN KEY (skill_id) REFERENCES skills(id) ON DELETE CASCADE
|
|
198
|
+
);
|
|
199
|
+
```
|
|
200
|
+
|
|
201
|
+
## Bootstrap Skills
|
|
202
|
+
|
|
203
|
+
**Always loaded (no database dependency):**
|
|
204
|
+
- `cfn-coordination` - Agent coordination protocols
|
|
205
|
+
- `hook-pipeline` - Pre/post-edit validation hooks
|
|
206
|
+
- `pre-edit-backup` - File backup system
|
|
207
|
+
- `cfn-agent-spawning` - Agent spawn utilities
|
|
208
|
+
- `cfn-loop-validation` - CFN Loop gate validation
|
|
209
|
+
|
|
210
|
+
**Location:** `.claude/skills/{skill-id}/SKILL.md`
|
|
211
|
+
|
|
212
|
+
## Usage Patterns
|
|
213
|
+
|
|
214
|
+
### Pattern 1: Agent Spawn with Contextual Skills
|
|
215
|
+
|
|
216
|
+
```bash
|
|
217
|
+
#!/bin/bash
|
|
218
|
+
# Agent spawn script with skill loading
|
|
219
|
+
|
|
220
|
+
AGENT_TYPE="backend-developer"
|
|
221
|
+
TASK_CONTEXT="authentication,jwt,api"
|
|
222
|
+
PHASE="loop3"
|
|
223
|
+
|
|
224
|
+
# Load skills via TypeScript API
|
|
225
|
+
npx tsx -e "
|
|
226
|
+
import { getGlobalLoader } from './src/cli/skill-loader';
|
|
227
|
+
import { DatabaseService } from './src/lib/database-service';
|
|
228
|
+
|
|
229
|
+
const dbService = new DatabaseService({
|
|
230
|
+
sqlite: { type: 'sqlite', database: './cfn-loop.db' }
|
|
231
|
+
});
|
|
232
|
+
|
|
233
|
+
await dbService.connect();
|
|
234
|
+
|
|
235
|
+
const loader = getGlobalLoader(dbService);
|
|
236
|
+
const result = await loader.loadContextualSkills({
|
|
237
|
+
agentType: '${AGENT_TYPE}',
|
|
238
|
+
taskContext: '${TASK_CONTEXT}'.split(','),
|
|
239
|
+
phase: '${PHASE}',
|
|
240
|
+
maxSkills: 20,
|
|
241
|
+
includeBootstrap: true
|
|
242
|
+
});
|
|
243
|
+
|
|
244
|
+
console.log(JSON.stringify(result.skills.map(s => s.id)));
|
|
245
|
+
"
|
|
246
|
+
```
|
|
247
|
+
|
|
248
|
+
### Pattern 2: Cache Warming for Fast Spawns
|
|
249
|
+
|
|
250
|
+
```typescript
|
|
251
|
+
// Preload common skills at application startup
|
|
252
|
+
const commonSkills = [
|
|
253
|
+
'cfn-coordination',
|
|
254
|
+
'hook-pipeline',
|
|
255
|
+
'pre-edit-backup',
|
|
256
|
+
'cfn-agent-spawning',
|
|
257
|
+
];
|
|
258
|
+
|
|
259
|
+
await loader.preloadSkills(commonSkills);
|
|
260
|
+
|
|
261
|
+
// Subsequent spawns will be faster (<100ms)
|
|
262
|
+
```
|
|
263
|
+
|
|
264
|
+
### Pattern 3: Hash Validation for Security
|
|
265
|
+
|
|
266
|
+
```typescript
|
|
267
|
+
// Validate skill content hasn't been tampered with
|
|
268
|
+
const validator = new SkillCacheValidator();
|
|
269
|
+
|
|
270
|
+
for (const skill of loadedSkills) {
|
|
271
|
+
const validation = validator.validateContent(
|
|
272
|
+
skill.content,
|
|
273
|
+
skill.contentHash
|
|
274
|
+
);
|
|
275
|
+
|
|
276
|
+
if (!validation.isValid) {
|
|
277
|
+
throw new Error(`Security violation: ${validation.reason}`);
|
|
278
|
+
}
|
|
279
|
+
}
|
|
280
|
+
```
|
|
281
|
+
|
|
282
|
+
## Error Handling
|
|
283
|
+
|
|
284
|
+
### Missing Database Service
|
|
285
|
+
|
|
286
|
+
```typescript
|
|
287
|
+
// Graceful degradation - load bootstrap skills only
|
|
288
|
+
const loader = new SkillLoader(undefined, logger);
|
|
289
|
+
|
|
290
|
+
const result = await loader.loadContextualSkills({
|
|
291
|
+
agentType: 'backend-developer',
|
|
292
|
+
includeBootstrap: true,
|
|
293
|
+
});
|
|
294
|
+
|
|
295
|
+
// result.skills will contain only bootstrap skills
|
|
296
|
+
// result.bootstrapCount = 5
|
|
297
|
+
// result.totalSkills = 5
|
|
298
|
+
```
|
|
299
|
+
|
|
300
|
+
### Cache Corruption
|
|
301
|
+
|
|
302
|
+
```typescript
|
|
303
|
+
// Automatic detection and recovery
|
|
304
|
+
const invalidSkills = validator.verifyBatchIntegrity(cachedEntries);
|
|
305
|
+
|
|
306
|
+
if (invalidSkills.length > 0) {
|
|
307
|
+
logger.warn(`Corrupted cache entries detected: ${invalidSkills.join(', ')}`);
|
|
308
|
+
loader.clearCache(); // Force reload from database
|
|
309
|
+
}
|
|
310
|
+
```
|
|
311
|
+
|
|
312
|
+
### File Not Found
|
|
313
|
+
|
|
314
|
+
```typescript
|
|
315
|
+
// Logs error but continues loading other skills
|
|
316
|
+
try {
|
|
317
|
+
const result = await loader.loadContextualSkills(options);
|
|
318
|
+
} catch (error) {
|
|
319
|
+
logger.error('Skill loading failed', error);
|
|
320
|
+
// Falls back to bootstrap skills if available
|
|
321
|
+
}
|
|
322
|
+
```
|
|
323
|
+
|
|
324
|
+
## Monitoring & Analytics
|
|
325
|
+
|
|
326
|
+
### Performance Monitoring
|
|
327
|
+
|
|
328
|
+
```typescript
|
|
329
|
+
const result = await loader.loadContextualSkills(options);
|
|
330
|
+
|
|
331
|
+
if (result.loadTimeMs > 1000) {
|
|
332
|
+
logger.warn('Skill loading exceeded 1s SLA', {
|
|
333
|
+
loadTimeMs: result.loadTimeMs,
|
|
334
|
+
target: 1000,
|
|
335
|
+
skillCount: result.totalSkills,
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
```
|
|
339
|
+
|
|
340
|
+
### Cache Hit Rate
|
|
341
|
+
|
|
342
|
+
```typescript
|
|
343
|
+
const hitRate = result.cacheHitCount / (result.cacheHitCount + result.cacheMissCount);
|
|
344
|
+
|
|
345
|
+
logger.info('Cache performance', {
|
|
346
|
+
hitRate: `${(hitRate * 100).toFixed(2)}%`,
|
|
347
|
+
hits: result.cacheHitCount,
|
|
348
|
+
misses: result.cacheMissCount,
|
|
349
|
+
});
|
|
350
|
+
```
|
|
351
|
+
|
|
352
|
+
### Skill Effectiveness
|
|
353
|
+
|
|
354
|
+
```sql
|
|
355
|
+
-- Query skill usage analytics
|
|
356
|
+
SELECT
|
|
357
|
+
s.id,
|
|
358
|
+
s.name,
|
|
359
|
+
COUNT(sul.id) as usage_count,
|
|
360
|
+
AVG(sul.confidence_impact) as avg_confidence_impact
|
|
361
|
+
FROM skills s
|
|
362
|
+
LEFT JOIN skill_usage_log sul ON s.id = sul.skill_id
|
|
363
|
+
GROUP BY s.id
|
|
364
|
+
ORDER BY avg_confidence_impact DESC;
|
|
365
|
+
```
|
|
366
|
+
|
|
367
|
+
## Testing
|
|
368
|
+
|
|
369
|
+
### Run Test Suite
|
|
370
|
+
|
|
371
|
+
```bash
|
|
372
|
+
# Full test suite (≥95% coverage target)
|
|
373
|
+
npm test -- tests/skill-loader.test.ts
|
|
374
|
+
|
|
375
|
+
# Watch mode for development
|
|
376
|
+
npm test -- tests/skill-loader.test.ts --watch
|
|
377
|
+
|
|
378
|
+
# Coverage report
|
|
379
|
+
npm test -- tests/skill-loader.test.ts --coverage
|
|
380
|
+
```
|
|
381
|
+
|
|
382
|
+
### Manual Testing
|
|
383
|
+
|
|
384
|
+
```bash
|
|
385
|
+
# Test skill loading
|
|
386
|
+
npx tsx ./.claude/skills/cfn-skill-loader/execute.sh \
|
|
387
|
+
--agent-type backend-developer \
|
|
388
|
+
--task-context "authentication,api" \
|
|
389
|
+
--max-skills 20
|
|
390
|
+
|
|
391
|
+
# Test cache performance
|
|
392
|
+
npx tsx ./.claude/skills/cfn-skill-loader/execute.sh \
|
|
393
|
+
--benchmark \
|
|
394
|
+
--iterations 10
|
|
395
|
+
```
|
|
396
|
+
|
|
397
|
+
## Migration Guide
|
|
398
|
+
|
|
399
|
+
### From Static File Loading
|
|
400
|
+
|
|
401
|
+
**Before (static):**
|
|
402
|
+
```typescript
|
|
403
|
+
const skillPath = `.claude/skills/${skillId}/SKILL.md`;
|
|
404
|
+
const content = fs.readFileSync(skillPath, 'utf-8');
|
|
405
|
+
```
|
|
406
|
+
|
|
407
|
+
**After (cached, validated):**
|
|
408
|
+
```typescript
|
|
409
|
+
const loader = getGlobalLoader(dbService, logger);
|
|
410
|
+
const result = await loader.loadContextualSkills({
|
|
411
|
+
agentType: 'backend-developer',
|
|
412
|
+
includeBootstrap: true,
|
|
413
|
+
});
|
|
414
|
+
|
|
415
|
+
const skill = result.skills.find(s => s.id === skillId);
|
|
416
|
+
```
|
|
417
|
+
|
|
418
|
+
## Troubleshooting
|
|
419
|
+
|
|
420
|
+
### High Cache Miss Rate
|
|
421
|
+
|
|
422
|
+
**Symptom:** `cacheMissCount` consistently high
|
|
423
|
+
**Solution:**
|
|
424
|
+
1. Increase cache size: `loader.cacheMaxSize = 200`
|
|
425
|
+
2. Increase TTL: `loader.cacheTTLMinutes = 10`
|
|
426
|
+
3. Preload common skills at startup
|
|
427
|
+
|
|
428
|
+
### Slow Cold Load (>1s)
|
|
429
|
+
|
|
430
|
+
**Symptom:** First load exceeds 1s SLA
|
|
431
|
+
**Solution:**
|
|
432
|
+
1. Optimize database queries (add indexes)
|
|
433
|
+
2. Reduce `maxSkills` parameter
|
|
434
|
+
3. Use phase-specific filtering
|
|
435
|
+
|
|
436
|
+
### Hash Validation Failures
|
|
437
|
+
|
|
438
|
+
**Symptom:** Frequent `content hash mismatch` warnings
|
|
439
|
+
**Solution:**
|
|
440
|
+
1. Verify file system integrity
|
|
441
|
+
2. Check for concurrent file modifications
|
|
442
|
+
3. Update database hashes: `SkillsQueryBuilder.updateContentHash()`
|
|
443
|
+
|
|
444
|
+
## Related Skills
|
|
445
|
+
|
|
446
|
+
- `cfn-coordination` - Agent coordination protocols
|
|
447
|
+
- `hook-pipeline` - Pre/post-edit validation
|
|
448
|
+
- `cfn-agent-spawning` - Agent lifecycle management
|
|
449
|
+
- `cfn-loop-validation` - CFN Loop gate checks
|
|
450
|
+
|
|
451
|
+
## Changelog
|
|
452
|
+
|
|
453
|
+
### v1.0.0 (2025-11-15)
|
|
454
|
+
- Initial implementation
|
|
455
|
+
- LRU caching with 5min TTL
|
|
456
|
+
- SHA256 hash validation
|
|
457
|
+
- Bootstrap skills support
|
|
458
|
+
- Database query layer
|
|
459
|
+
- Performance: <1s cold, <100ms warm
|
|
460
|
+
- Test coverage: ≥95%
|
|
461
|
+
|
|
462
|
+
---
|
|
463
|
+
|
|
464
|
+
**Documentation:** `docs/SKILLLOADER_API.md`
|
|
465
|
+
**Tests:** `tests/skill-loader.test.ts`
|
|
466
|
+
**Source:** `src/cli/skill-loader.ts`
|