claude-flow-novice 2.9.1 → 2.10.1
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/agents/cfn-dev-team/CLAUDE.md +1086 -0
- package/.claude/agents/cfn-dev-team/README.md +116 -0
- package/.claude/agents/cfn-dev-team/architecture/api-designer-persona.md +149 -0
- package/.claude/agents/cfn-dev-team/architecture/base-template-generator.md +196 -0
- package/.claude/agents/cfn-dev-team/architecture/goal-planner.md +183 -0
- package/.claude/agents/cfn-dev-team/architecture/planner.md +182 -0
- package/.claude/agents/cfn-dev-team/architecture/system-architect.md +162 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-frontend-coordinator.md +540 -0
- package/.claude/agents/cfn-dev-team/coordinators/cfn-v3-coordinator.md +20 -14
- package/.claude/agents/cfn-dev-team/coordinators/consensus-builder.md +167 -0
- package/.claude/agents/cfn-dev-team/dev-ops/devops-engineer.md +148 -0
- package/.claude/agents/cfn-dev-team/dev-ops/github-commit-agent.md +118 -0
- package/.claude/agents/cfn-dev-team/dev-ops/kubernetes-specialist.md +540 -0
- package/.claude/agents/cfn-dev-team/developers/backend-dev.md +20 -0
- package/.claude/agents/cfn-dev-team/developers/data/data-engineer.md +585 -0
- package/.claude/agents/cfn-dev-team/developers/database/database-architect.md +276 -0
- package/.claude/agents/cfn-dev-team/developers/dev-backend-api.md +147 -0
- package/.claude/agents/cfn-dev-team/developers/frontend/mobile-dev.md +218 -0
- package/.claude/agents/cfn-dev-team/developers/{react-frontend-engineer.md → frontend/react-frontend-engineer.md} +53 -5
- package/.claude/agents/cfn-dev-team/developers/frontend/spec-mobile-react-native.md +199 -0
- package/.claude/agents/cfn-dev-team/developers/graphql-specialist.md +615 -0
- package/.claude/agents/cfn-dev-team/developers/rust-developer.md +174 -0
- package/.claude/agents/cfn-dev-team/documentation/README-VALIDATION.md +243 -0
- package/.claude/agents/cfn-dev-team/documentation/agent-type-guidelines.md +465 -0
- package/.claude/agents/cfn-dev-team/documentation/api-docs.md +103 -0
- package/.claude/agents/cfn-dev-team/documentation/docs-api-openapi.md +98 -0
- package/.claude/agents/cfn-dev-team/documentation/pseudocode.md +159 -0
- package/.claude/agents/cfn-dev-team/documentation/specification.md +157 -0
- package/.claude/agents/cfn-dev-team/product-owners/accessibility-advocate-persona.md +109 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/cto-agent.md +8 -6
- package/.claude/agents/cfn-dev-team/product-owners/power-user-persona.md +190 -0
- package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner.md +85 -59
- package/.claude/agents/cfn-dev-team/reviewers/quality/analyze-code-quality.md +141 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/code-analyzer.md +200 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/cyclomatic-complexity-reducer.md +321 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/perf-analyzer.md +238 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/performance-benchmarker.md +101 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/quality-metrics.md +375 -0
- package/.claude/agents/cfn-dev-team/reviewers/quality/security-specialist.md +193 -0
- package/.claude/agents/cfn-dev-team/reviewers/reviewer.md +39 -0
- package/.claude/agents/cfn-dev-team/testers/interaction-tester.md +31 -0
- package/.claude/agents/cfn-dev-team/testers/load-testing-specialist.md +469 -0
- package/.claude/agents/cfn-dev-team/testers/playwright-tester.md +24 -0
- package/.claude/agents/cfn-dev-team/testers/tester.md +20 -0
- package/.claude/agents/cfn-dev-team/utility/agent-builder.md +151 -0
- package/.claude/agents/cfn-dev-team/utility/analyst.md +178 -0
- package/.claude/agents/cfn-dev-team/utility/claude-code-expert.md +1043 -0
- package/.claude/agents/cfn-dev-team/utility/code-booster.md +139 -0
- package/.claude/agents/cfn-dev-team/utility/context-curator.md +99 -0
- package/.claude/agents/cfn-dev-team/{developers → utility}/researcher.md +6 -4
- package/.claude/commands/cfn/CFN_LOOP_FRONTEND.md +741 -0
- package/.claude/commands/cfn/CFN_LOOP_TASK_MODE.md +353 -0
- package/.claude/commands/cfn/cfn-loop-frontend.md +555 -0
- package/.claude/commands/cfn/cfn-loop.md +168 -7
- package/{CFN-CLAUDE.md → .claude/root-claude-distribute/CFN-CLAUDE.md} +23 -3
- package/.claude/skills/cfn-ace-system/SKILL.md +364 -0
- package/.claude/skills/cfn-ace-system/add-bullet.sh +145 -0
- package/.claude/skills/cfn-ace-system/analyze-anti-pattern-effectiveness.sh +56 -0
- package/.claude/skills/cfn-ace-system/classify-task.sh +18 -0
- package/.claude/skills/cfn-ace-system/export-ace-metrics.sh +48 -0
- package/.claude/skills/cfn-ace-system/extract-tags.sh +385 -0
- package/.claude/skills/cfn-ace-system/format-negative-context.sh +180 -0
- package/.claude/skills/cfn-ace-system/init-indexes.sql +160 -0
- package/.claude/skills/cfn-ace-system/invoke-context-curate.sh +192 -0
- package/.claude/skills/cfn-ace-system/invoke-context-inject.sh +361 -0
- package/.claude/skills/cfn-ace-system/invoke-context-query.sh +139 -0
- package/.claude/skills/cfn-ace-system/invoke-context-reflect.sh +343 -0
- package/.claude/skills/cfn-ace-system/invoke-context-stats.sh +227 -0
- package/.claude/skills/cfn-ace-system/log-merge.sh +67 -0
- package/.claude/skills/cfn-ace-system/monitor-injection-performance.sh +138 -0
- package/.claude/skills/cfn-ace-system/optimize-injection-pipeline.sh +169 -0
- package/.claude/skills/cfn-ace-system/query-anti-patterns.sh +276 -0
- package/.claude/skills/cfn-ace-system/query-contexts.sh +150 -0
- package/.claude/skills/cfn-ace-system/query-reflections.sh +35 -0
- package/.claude/skills/cfn-ace-system/schema/001-create-context-reflections.sql +237 -0
- package/.claude/skills/cfn-ace-system/schema/README.md +723 -0
- package/.claude/skills/cfn-ace-system/schema/SCHEMA_DESIGN_SUMMARY.md +564 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data-simple.sh +62 -0
- package/.claude/skills/cfn-ace-system/schema/populate-test-data.sh +247 -0
- package/.claude/skills/cfn-ace-system/schema/run-migration.sh +231 -0
- package/.claude/skills/cfn-ace-system/schema/validate-schema.sql +280 -0
- package/.claude/skills/cfn-ace-system/score-relevance-adapter.sh +138 -0
- package/.claude/skills/cfn-ace-system/score-relevance.sh +253 -0
- package/.claude/skills/cfn-ace-system/sprint-7-lessons.json +46 -0
- package/.claude/skills/cfn-ace-system/store-reflection.sh +46 -0
- package/.claude/skills/cfn-ace-system/test-ace-skill.sh +312 -0
- package/.claude/skills/cfn-ace-system/track-ab-test.sh +42 -0
- package/.claude/skills/cfn-ace-system/update-reflection.sh +41 -0
- package/.claude/skills/cfn-agent-discovery/SKILL.md +40 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-clean.json +0 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry-fixed.json +19 -0
- package/.claude/skills/cfn-agent-discovery/agents-registry.json +718 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.py +184 -0
- package/.claude/skills/cfn-agent-discovery/discover-agents.sh +87 -0
- package/.claude/skills/cfn-agent-discovery/invoke-registry.sh +11 -0
- package/.claude/skills/cfn-agent-discovery/temp_script.py +0 -0
- package/.claude/skills/cfn-agent-execution/execute-agent.sh +126 -0
- package/.claude/skills/cfn-agent-output-processing/SKILL.md +359 -0
- package/.claude/skills/cfn-agent-selector/SKILL.md +90 -0
- package/.claude/skills/cfn-agent-selector/select-agents.sh +112 -0
- package/.claude/skills/cfn-agent-spawning/SKILL.md +135 -0
- package/.claude/skills/cfn-agent-spawning/agent-selection-guide.md +814 -0
- package/.claude/skills/cfn-agent-spawning/check-dependencies.sh +30 -0
- package/.claude/skills/cfn-agent-spawning/spawn-agent.sh +263 -0
- package/.claude/skills/cfn-agent-spawning/spawn-templates.sh +613 -0
- package/.claude/skills/cfn-analytics/description-refinement-guide.md +164 -0
- package/.claude/skills/cfn-analytics/log-skill-invocation.js +122 -0
- package/.claude/skills/cfn-analytics/run-production-criteria-tests.sh +126 -0
- package/.claude/skills/cfn-analytics/skill-analytics-dashboard.js +113 -0
- package/.claude/skills/cfn-analytics/skill-invocation-hook.sh +28 -0
- package/.claude/skills/cfn-analytics/skill-invocations.sql +58 -0
- package/.claude/skills/cfn-analytics/test-corpus.json +32 -0
- package/.claude/skills/cfn-analytics/test-data-generator.js +115 -0
- package/.claude/skills/cfn-analytics/test-manual-override-rate.js +285 -0
- package/.claude/skills/cfn-analytics/validate-skill-selection.js +188 -0
- package/.claude/skills/cfn-config-management/SKILL.md +34 -0
- package/.claude/skills/cfn-config-management/check-dependencies.sh +56 -0
- package/.claude/skills/cfn-config-management/config.json +32 -0
- package/.claude/skills/cfn-config-management/manage-config.sh +113 -0
- package/.claude/skills/cfn-event-bus/SKILL.md +412 -0
- package/.claude/skills/cfn-event-bus/config.json +111 -0
- package/.claude/skills/cfn-event-bus/eventbus-wrapper.cjs +69 -0
- package/.claude/skills/cfn-event-bus/invoke-event-publish.sh +147 -0
- package/.claude/skills/cfn-event-bus/invoke-event-subscribe.sh +171 -0
- package/.claude/skills/cfn-event-bus/invoke-lifecycle-track.sh +201 -0
- package/.claude/skills/cfn-event-bus/test-event-bus.sh +280 -0
- package/.claude/skills/cfn-fleet-manager/SKILL.md +412 -0
- package/.claude/skills/cfn-fleet-manager/config.json +60 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-allocate.sh +182 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-balance.sh +239 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-metrics.sh +193 -0
- package/.claude/skills/cfn-fleet-manager/invoke-fleet-register.sh +124 -0
- package/.claude/skills/cfn-fleet-manager/test-fleet-manager.sh +345 -0
- package/.claude/skills/cfn-hook-pipeline/SKILL.md +148 -0
- package/.claude/skills/cfn-hook-pipeline/auto-resolve.sh +66 -0
- package/.claude/skills/cfn-hook-pipeline/check-dependencies.sh +40 -0
- package/.claude/skills/cfn-hook-pipeline/feedback-resolver.sh +452 -0
- package/.claude/skills/cfn-hook-pipeline/post-edit-handler.sh +154 -0
- package/.claude/skills/cfn-hook-pipeline/security-scan.json +60 -0
- package/.claude/skills/cfn-hook-pipeline/security-scanner.sh +121 -0
- package/.claude/skills/cfn-hook-pipeline/test-root-warning-resolution.sh +148 -0
- package/.claude/skills/cfn-hybrid-routing/SKILL.md +46 -0
- package/.claude/skills/cfn-hybrid-routing/check-dependencies.sh +52 -0
- package/.claude/skills/cfn-hybrid-routing/config.json +26 -0
- package/.claude/skills/cfn-hybrid-routing/spawn-worker.sh +44 -0
- package/.claude/skills/cfn-loop-orchestration/SKILL.md +299 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/auto-tune-timeouts.sh +228 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/consensus.sh +84 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/context-injection.sh +142 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/context-lookup.sh +359 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/deliverable-verifier.sh +71 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/gate-check.sh +90 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/iteration-manager.sh +87 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/spawn-agents.sh +271 -0
- package/.claude/skills/cfn-loop-orchestration/helpers/timeout-calculator.sh +51 -0
- package/.claude/skills/cfn-loop-orchestration/inject-loop-context.sh +41 -0
- package/.claude/skills/cfn-loop-orchestration/monitor-execution.sh +156 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh +884 -0
- package/.claude/skills/cfn-loop-orchestration/orchestrate.sh.backup +840 -0
- package/.claude/skills/cfn-loop-orchestration/security_utils.sh +99 -0
- package/.claude/skills/cfn-loop-orchestration/test-cfn-orchestration.sh +281 -0
- package/.claude/skills/cfn-loop-orchestration/test-edge-cases.sh +188 -0
- package/.claude/skills/cfn-loop-validation/SKILL.md +353 -0
- package/.claude/skills/cfn-loop-validation/check-dependencies.sh +31 -0
- package/.claude/skills/cfn-loop-validation/config.json +161 -0
- package/.claude/skills/cfn-loop-validation/consensus-calculator.js +477 -0
- package/.claude/skills/cfn-loop-validation/evidence-chain.sql +163 -0
- package/.claude/skills/cfn-loop-validation/examples/README.md +453 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-full-cfn-loop.sh +234 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop2-consensus.sh +132 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-loop3-gate.sh +115 -0
- package/.claude/skills/cfn-loop-validation/examples/coordinator-redis-integration.sh +186 -0
- package/.claude/skills/cfn-loop-validation/orchestrate-cfn-loop.sh +252 -0
- package/.claude/skills/cfn-loop-validation/validate-iteration.sh +134 -0
- package/.claude/skills/cfn-process-lifecycle/SKILL.md +39 -0
- package/.claude/skills/cfn-process-lifecycle/check-dependencies.sh +58 -0
- package/.claude/skills/cfn-process-lifecycle/config.json +39 -0
- package/.claude/skills/cfn-process-lifecycle/process-manager.sh +144 -0
- package/.claude/skills/cfn-product-owner-decision/SKILL.md +332 -0
- package/.claude/skills/cfn-product-owner-decision/execute-decision.sh +176 -0
- package/.claude/skills/cfn-product-owner-decision/parse-decision.sh +66 -0
- package/.claude/skills/cfn-product-owner-decision/validate-deliverables.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/AGENT_LOGGING.md +280 -0
- package/.claude/skills/cfn-redis-coordination/BZPOPMIN_FIX_SUMMARY.md +209 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT.md +57 -0
- package/.claude/skills/cfn-redis-coordination/HEARTBEAT_MONITORING.md +267 -0
- package/.claude/skills/cfn-redis-coordination/LOGGING.md +260 -0
- package/.claude/skills/cfn-redis-coordination/SECURITY_REVIEW.md +25 -0
- package/.claude/skills/cfn-redis-coordination/SHUTDOWN_HANDLING.md +164 -0
- package/.claude/skills/cfn-redis-coordination/SKILL.md +720 -0
- package/.claude/skills/cfn-redis-coordination/agent-log.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/agent-recovery.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/analyze-task-complexity.sh +277 -0
- package/.claude/skills/cfn-redis-coordination/cancel-swarm.sh +221 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-exec.sh +468 -0
- package/.claude/skills/cfn-redis-coordination/cfn-loop-relaunch.sh +29 -0
- package/.claude/skills/cfn-redis-coordination/check-dependencies.sh +32 -0
- package/.claude/skills/cfn-redis-coordination/collect-confidence-scores.sh +179 -0
- package/.claude/skills/cfn-redis-coordination/collect-results.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/complete-swarm.sh +75 -0
- package/.claude/skills/cfn-redis-coordination/config.json +61 -0
- package/.claude/skills/cfn-redis-coordination/data/cfn-loop.db +0 -0
- package/.claude/skills/cfn-redis-coordination/demos/phase4-wake-queue-test-report.md +82 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-bzpopmin-fix.sh +274 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-cancel-swarm.sh +276 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-dlq.sh +129 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-iteration-feedback.sh +320 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-orchestrator.sh +249 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4-unix.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake-phase4.sh +163 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-priority-wake.sh +138 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quick-fix.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-absolute.sh +45 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-fallback.sh +68 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-percentage.sh +56 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum-with-retry.sh +81 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-quorum.sh +57 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown-handling.sh +187 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-shutdown.sh +160 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils-unix.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-utils.sh +97 -0
- package/.claude/skills/cfn-redis-coordination/demos/test-waiting-mode.sh +59 -0
- package/.claude/skills/cfn-redis-coordination/examples/README.md +73 -0
- package/.claude/skills/cfn-redis-coordination/examples/grafana-dashboard.json +352 -0
- package/.claude/skills/cfn-redis-coordination/examples/hierarchical-pattern.sh +127 -0
- package/.claude/skills/cfn-redis-coordination/examples/mesh-pattern.sh +171 -0
- package/.claude/skills/cfn-redis-coordination/examples/timeout-handling.sh +227 -0
- package/.claude/skills/cfn-redis-coordination/examples/waiting-mode-pattern.sh +239 -0
- package/.claude/skills/cfn-redis-coordination/execute-product-owner-decision.sh +258 -0
- package/.claude/skills/cfn-redis-coordination/get-agent-timeout.sh +177 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-functions.sh +137 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat-protocol.md +106 -0
- package/.claude/skills/cfn-redis-coordination/heartbeat.sh +126 -0
- package/.claude/skills/cfn-redis-coordination/init-swarm.sh +148 -0
- package/.claude/skills/cfn-redis-coordination/invoke-redis-pattern.sh +220 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh +283 -0
- package/.claude/skills/cfn-redis-coordination/invoke-waiting-mode.sh.backup-p7 +423 -0
- package/.claude/skills/cfn-redis-coordination/list-active-swarms.sh +147 -0
- package/.claude/skills/cfn-redis-coordination/log-event.sh +109 -0
- package/.claude/skills/cfn-redis-coordination/metrics-export.sh +674 -0
- package/.claude/skills/cfn-redis-coordination/metrics-schema.json +66 -0
- package/.claude/skills/cfn-redis-coordination/metrics-storage.md +31 -0
- package/.claude/skills/cfn-redis-coordination/monitor-cfn-violations.sh +391 -0
- package/.claude/skills/cfn-redis-coordination/monitor-heartbeats.sh +101 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop-v3.sh +141 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh +31 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup +38 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-1761167675 +1672 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-p5 +1604 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase1 +1550 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase2 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.backup-phase3 +1621 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.bak +0 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.broken +1627 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.corrupted +80 -0
- package/.claude/skills/cfn-redis-coordination/orchestrate-cfn-loop.sh.deprecated +1864 -0
- package/.claude/skills/cfn-redis-coordination/priority-wake-mechanism.md +75 -0
- package/.claude/skills/cfn-redis-coordination/priority_wake.py +134 -0
- package/.claude/skills/cfn-redis-coordination/query-dlq.sh +162 -0
- package/.claude/skills/cfn-redis-coordination/query-logs.sh +103 -0
- package/.claude/skills/cfn-redis-coordination/redis-pattern.sh +619 -0
- package/.claude/skills/cfn-redis-coordination/retrieve-context.sh +58 -0
- package/.claude/skills/cfn-redis-coordination/select-specialist-agent.sh +371 -0
- package/.claude/skills/cfn-redis-coordination/semantic-match-tfidf.py +252 -0
- package/.claude/skills/cfn-redis-coordination/send-heartbeat.sh +165 -0
- package/.claude/skills/cfn-redis-coordination/signal.sh +38 -0
- package/.claude/skills/cfn-redis-coordination/store-context.sh +86 -0
- package/.claude/skills/cfn-redis-coordination/store-epic-context.sh +123 -0
- package/.claude/skills/cfn-redis-coordination/test-context-injection.sh +354 -0
- package/.claude/skills/cfn-redis-coordination/test-timeout-enforcement.sh +513 -0
- package/.claude/skills/cfn-redis-coordination/tests/convert-line-endings.sh +15 -0
- package/.claude/skills/cfn-redis-coordination/tests/dlq-functionality-test.sh +102 -0
- package/.claude/skills/cfn-redis-coordination/tests/edge-cases-test.sh +99 -0
- package/.claude/skills/cfn-redis-coordination/tests/integration-test.sh +170 -0
- package/.claude/skills/cfn-redis-coordination/tests/retry-mechanism-test.sh +82 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-test-suite.sh +92 -0
- package/.claude/skills/cfn-redis-coordination/tests/run-tests.sh +4 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-monitoring.sh +418 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-heartbeat-simple.sh +124 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-primitives.sh +166 -0
- package/.claude/skills/cfn-redis-coordination/tests/test-utils.sh +54 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_coordination_primitives.sh.deprecated +20 -0
- package/.claude/skills/cfn-redis-coordination/tests/test_utils.sh +49 -0
- package/.claude/skills/cfn-redis-coordination/v2_modularization/core_orchestration.sh +76 -0
- package/.claude/skills/cfn-redis-coordination/validate-parameters.sh +492 -0
- package/.claude/skills/cfn-sqlite-memory/IMPLEMENTATION_REPORT.md +393 -0
- package/.claude/skills/cfn-sqlite-memory/QUICK_REFERENCE.md +204 -0
- package/.claude/skills/cfn-sqlite-memory/SKILL.md +415 -0
- package/.claude/skills/cfn-sqlite-memory/acl-queries.sql +452 -0
- package/.claude/skills/cfn-sqlite-memory/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-sqlite-memory/config.json +45 -0
- package/.claude/skills/cfn-sqlite-memory/memory-cli.sh +88 -0
- package/.claude/skills/cfn-sqlite-memory/test-state-persistence.js +187 -0
- package/.claude/skills/cfn-sqlite-memory/ttl-cleanup.sh +274 -0
- package/.claude/skills/cfn-test-execution/SKILL.md +128 -0
- package/.claude/skills/cfn-test-execution/check-dependencies.sh +36 -0
- package/.claude/skills/cfn-test-execution/test-cache-reader.sh +134 -0
- package/.claude/skills/cfn-test-execution/test-concurrent-conflicts.sh +115 -0
- package/.claude/skills/cfn-test-execution/test-coordinator-pattern.sh +109 -0
- package/.claude/skills/cfn-transparency-middleware/Cargo.toml +18 -0
- package/.claude/skills/cfn-transparency-middleware/SECURITY.md +41 -0
- package/.claude/skills/cfn-transparency-middleware/SKILL.md +91 -0
- package/.claude/skills/cfn-transparency-middleware/TEST_RESULTS.md +174 -0
- package/.claude/skills/cfn-transparency-middleware/config.json +31 -0
- package/.claude/skills/cfn-transparency-middleware/examples/basic-usage.ts +39 -0
- package/.claude/skills/cfn-transparency-middleware/examples/batch-processing.ts +52 -0
- package/.claude/skills/cfn-transparency-middleware/examples/custom-filtering.ts +61 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-filter.sh +98 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-init.sh +224 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-level.sh +333 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-metrics.sh +345 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-observe.sh +140 -0
- package/.claude/skills/cfn-transparency-middleware/invoke-transparency-stop.sh +235 -0
- package/.claude/skills/cfn-transparency-middleware/memory_query.rs +85 -0
- package/.claude/skills/cfn-transparency-middleware/memory_repository.rs +140 -0
- package/.claude/skills/cfn-transparency-middleware/memory_schema.rs +64 -0
- package/.claude/skills/cfn-transparency-middleware/middleware-config.sh +29 -0
- package/.claude/skills/cfn-transparency-middleware/performance-benchmark.sh +79 -0
- package/.claude/skills/cfn-transparency-middleware/test-e2e.sh +406 -0
- package/.claude/skills/cfn-transparency-middleware/test-integration.sh +162 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh +368 -0
- package/.claude/skills/cfn-transparency-middleware/test-transparency-skill.sh.unix +126 -0
- package/.claude/skills/cfn-transparency-middleware/tests/input-validation.sh +93 -0
- package/.claude/skills/cfn-transparency-middleware/wrap-agent.sh +132 -0
- package/.claude/skills/cfn-webapp-testing/SCREENSHOT_NAMING_CONVENTION.md +547 -0
- package/.claude/skills/cfn-webapp-testing/SKILL.md +877 -0
- package/.claude/skills/cfn-webapp-testing/capture-screenshot.sh +238 -0
- package/.claude/skills/cfn-webapp-testing/cfn-loop-integration.sh +265 -0
- package/.claude/skills/cfn-webapp-testing/compare-screenshots.sh +199 -0
- package/.claude/skills/cfn-webapp-testing/init-storage.sh +150 -0
- package/.claude/skills/cfn-webapp-testing/set-baseline.sh +196 -0
- package/.claude/skills/cfn-webapp-testing/test-webapp-testing.sh +233 -0
- package/README.md +51 -2
- package/dist/ace/ace-reflector.js +109 -10
- package/dist/ace/ace-reflector.js.map +1 -1
- package/dist/cli/agent-executor.js +1 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/package.json +43 -7
- package/readme/README.md +15 -4
- package/scripts/init-project.js +76 -6
- package/scripts/run-marketing-tests.sh +43 -0
- package/scripts/update_paths.sh +47 -0
- package/tools/install-lizard.sh +37 -0
- package/tools/simple-complexity.sh +44 -0
- package/.claude/agents/cfn-dev-team/developers/coder.md +0 -270
- package/.claude/agents/cfn-dev-team/developers/state-architect.md +0 -127
- package/.claude/agents/cfn-dev-team/reviewers/code-quality-validator.md +0 -128
- /package/.claude/agents/cfn-dev-team/developers/{ui-designer.md → frontend/ui-designer.md} +0 -0
- /package/.claude/agents/cfn-dev-team/{coordinators → product-owners}/product-owner-agent.md +0 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
{
|
|
2
|
+
"lessons": [
|
|
3
|
+
{
|
|
4
|
+
"bullet_id": "STRAT-007",
|
|
5
|
+
"category": "strategy",
|
|
6
|
+
"content": "When implementing long-running orchestration workflows (>10 minutes), use background execution with Redis-based status monitoring instead of synchronous Bash calls. Bash tool has hard 10-minute timeout limit that cannot be extended.",
|
|
7
|
+
"confidence": 0.95,
|
|
8
|
+
"tags": ["orchestration", "bash-timeout", "redis-monitoring", "background-execution"]
|
|
9
|
+
},
|
|
10
|
+
{
|
|
11
|
+
"bullet_id": "PATTERN-008",
|
|
12
|
+
"category": "pattern",
|
|
13
|
+
"content": "Implement a strategic Product Owner decision flow that provides explicit PROCEED/ITERATE/ABORT options after Loop 2 consensus to prevent validator scope creep and maintain clear workflow boundaries.",
|
|
14
|
+
"confidence": 0.90,
|
|
15
|
+
"tags": ["workflow-management", "consensus", "product-owner", "decision-flow"]
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
"bullet_id": "EDGE-005",
|
|
19
|
+
"category": "edge_case",
|
|
20
|
+
"content": "Enforce strict agent ID consistency across orchestrator and CLI spawning by using iteration-suffixed tracking arrays and dynamic agent selection based on task keywords to prevent orchestrator hanging.",
|
|
21
|
+
"confidence": 0.88,
|
|
22
|
+
"tags": ["agent-management", "id-tracking", "spawning", "consistency"]
|
|
23
|
+
},
|
|
24
|
+
{
|
|
25
|
+
"bullet_id": "OPT-006",
|
|
26
|
+
"category": "optimization",
|
|
27
|
+
"content": "Implement token limit strategies with headroom, targeting 10K tokens with a hard limit of 16K, and use incremental output patterns to handle complex, multi-stage agent workflows.",
|
|
28
|
+
"confidence": 0.85,
|
|
29
|
+
"tags": ["token-management", "llm-optimization", "incremental-processing"]
|
|
30
|
+
},
|
|
31
|
+
{
|
|
32
|
+
"bullet_id": "ANTI-004",
|
|
33
|
+
"category": "anti_pattern",
|
|
34
|
+
"content": "Avoid using simplistic regex matching for agent validation, such as `[[ \" $AGENTS \" =~ \" $AGENTS \" ]]`, which creates false-positive matches and breaks agent tracking logic.",
|
|
35
|
+
"confidence": 0.92,
|
|
36
|
+
"tags": ["regex", "validation", "agent-tracking", "error-prevention"]
|
|
37
|
+
},
|
|
38
|
+
{
|
|
39
|
+
"bullet_id": "DOMAIN-003",
|
|
40
|
+
"category": "domain_insight",
|
|
41
|
+
"content": "Design orchestration systems with explicit, unbound state management for tracking agent completion, ensuring that components like LOOP2_COMPLETED_AGENTS can handle dynamic workflow iterations without premature termination.",
|
|
42
|
+
"confidence": 0.87,
|
|
43
|
+
"tags": ["orchestration", "state-management", "workflow-design", "agent-coordination"]
|
|
44
|
+
}
|
|
45
|
+
]
|
|
46
|
+
}
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Parse arguments
|
|
4
|
+
while [ $# -gt 0 ]; do
|
|
5
|
+
key="$1"
|
|
6
|
+
case $key in
|
|
7
|
+
--sprint)
|
|
8
|
+
SPRINT="$2"
|
|
9
|
+
shift 2
|
|
10
|
+
;;
|
|
11
|
+
--file)
|
|
12
|
+
LESSONS_FILE="$2"
|
|
13
|
+
shift 2
|
|
14
|
+
;;
|
|
15
|
+
*)
|
|
16
|
+
echo "Unknown parameter: $1"
|
|
17
|
+
exit 1
|
|
18
|
+
;;
|
|
19
|
+
esac
|
|
20
|
+
done
|
|
21
|
+
|
|
22
|
+
# Validate required arguments
|
|
23
|
+
if [ -z "$SPRINT" ] || [ -z "$LESSONS_FILE" ]; then
|
|
24
|
+
echo "Usage: $0 --sprint <sprint_number> --file <lessons_file_path>"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# Ensure artifacts directory exists
|
|
29
|
+
mkdir -p .claude/artifacts/ace-reflections
|
|
30
|
+
|
|
31
|
+
# Store reflection with timestamp
|
|
32
|
+
TIMESTAMP=$(date -u +"%Y%m%d_%H%M%S")
|
|
33
|
+
OUTPUT_FILE=".claude/artifacts/ace-reflections/sprint-${SPRINT}_${TIMESTAMP}.json"
|
|
34
|
+
|
|
35
|
+
# Copy lessons file to artifacts
|
|
36
|
+
cp "$LESSONS_FILE" "$OUTPUT_FILE"
|
|
37
|
+
|
|
38
|
+
# Update latest reflection pointer
|
|
39
|
+
echo "$OUTPUT_FILE" > .claude/artifacts/ace-reflections/LATEST
|
|
40
|
+
|
|
41
|
+
echo "Reflection for Sprint $SPRINT stored successfully at $OUTPUT_FILE"
|
|
42
|
+
|
|
43
|
+
# Optional: Use Redis to broadcast reflection event
|
|
44
|
+
if command -v redis-cli &> /dev/null; then
|
|
45
|
+
redis-cli lpush "ace:reflections" "$OUTPUT_FILE"
|
|
46
|
+
fi
|
|
@@ -0,0 +1,312 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
|
|
3
|
+
##############################################################################
|
|
4
|
+
# ACE System Skill Test Suite
|
|
5
|
+
# Validates all ACE skill wrapper functionality
|
|
6
|
+
#
|
|
7
|
+
# Usage:
|
|
8
|
+
# ./test-ace-skill.sh
|
|
9
|
+
##############################################################################
|
|
10
|
+
|
|
11
|
+
set -euo pipefail
|
|
12
|
+
|
|
13
|
+
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
|
|
14
|
+
TEST_DIR=$(mktemp -d)
|
|
15
|
+
trap "rm -rf $TEST_DIR" EXIT
|
|
16
|
+
|
|
17
|
+
PASS_COUNT=0
|
|
18
|
+
FAIL_COUNT=0
|
|
19
|
+
|
|
20
|
+
# Test helper functions
|
|
21
|
+
pass() {
|
|
22
|
+
echo "[PASS] $1"
|
|
23
|
+
((PASS_COUNT++))
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
fail() {
|
|
27
|
+
echo "[FAIL] $1"
|
|
28
|
+
((FAIL_COUNT++))
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
# Test 1: Context Reflection
|
|
32
|
+
test_context_reflect() {
|
|
33
|
+
echo "Running: Context Reflection Test"
|
|
34
|
+
|
|
35
|
+
local test_context='{"task": "test-reflection", "complexity": "high", "constraints": ["time", "budget"]}'
|
|
36
|
+
|
|
37
|
+
if result=$("$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
38
|
+
--context "$test_context" \
|
|
39
|
+
--memory-path "$TEST_DIR/test-reflections.sqlite" 2>&1); then
|
|
40
|
+
|
|
41
|
+
# Validate JSON output
|
|
42
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
43
|
+
# Check required fields
|
|
44
|
+
if echo "$result" | jq -e '.id and .timestamp and .complexity and .insights' > /dev/null 2>&1; then
|
|
45
|
+
pass "Context reflection generates valid output"
|
|
46
|
+
else
|
|
47
|
+
fail "Context reflection missing required fields"
|
|
48
|
+
fi
|
|
49
|
+
else
|
|
50
|
+
fail "Context reflection returned invalid JSON"
|
|
51
|
+
fi
|
|
52
|
+
else
|
|
53
|
+
fail "Context reflection script failed: $result"
|
|
54
|
+
fi
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
# Test 2: Context Stats - Reflections Query
|
|
58
|
+
test_context_stats() {
|
|
59
|
+
echo "Running: Context Stats Test"
|
|
60
|
+
|
|
61
|
+
# First create some reflections
|
|
62
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
63
|
+
--context '{"task": "stats-test-1"}' \
|
|
64
|
+
--memory-path "$TEST_DIR/test-stats.sqlite" > /dev/null 2>&1
|
|
65
|
+
|
|
66
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
67
|
+
--context '{"task": "stats-test-2"}' \
|
|
68
|
+
--complexity 0.8 \
|
|
69
|
+
--memory-path "$TEST_DIR/test-stats.sqlite" > /dev/null 2>&1
|
|
70
|
+
|
|
71
|
+
# Query reflections
|
|
72
|
+
if result=$("$SCRIPT_DIR/invoke-context-stats.sh" \
|
|
73
|
+
--query reflections \
|
|
74
|
+
--filter '{"complexity": {"$gt": 0.5}}' \
|
|
75
|
+
--limit 10 \
|
|
76
|
+
--memory-path "$TEST_DIR/test-stats.sqlite" 2>&1); then
|
|
77
|
+
|
|
78
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
79
|
+
# Check if array returned
|
|
80
|
+
if echo "$result" | jq -e 'type == "array"' > /dev/null 2>&1; then
|
|
81
|
+
pass "Context stats returns filtered reflections"
|
|
82
|
+
else
|
|
83
|
+
fail "Context stats did not return array"
|
|
84
|
+
fi
|
|
85
|
+
else
|
|
86
|
+
fail "Context stats returned invalid JSON"
|
|
87
|
+
fi
|
|
88
|
+
else
|
|
89
|
+
fail "Context stats script failed: $result"
|
|
90
|
+
fi
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
# Test 3: Context Stats - Summary Query
|
|
94
|
+
test_context_stats_summary() {
|
|
95
|
+
echo "Running: Context Stats Summary Test"
|
|
96
|
+
|
|
97
|
+
# Use same database as previous test
|
|
98
|
+
if result=$("$SCRIPT_DIR/invoke-context-stats.sh" \
|
|
99
|
+
--query summary \
|
|
100
|
+
--memory-path "$TEST_DIR/test-stats.sqlite" 2>&1); then
|
|
101
|
+
|
|
102
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
103
|
+
# Check summary fields
|
|
104
|
+
if echo "$result" | jq -e '.totalReflections and .avgComplexity and .maxComplexity' > /dev/null 2>&1; then
|
|
105
|
+
pass "Context stats summary provides analytics"
|
|
106
|
+
else
|
|
107
|
+
fail "Context stats summary missing required fields"
|
|
108
|
+
fi
|
|
109
|
+
else
|
|
110
|
+
fail "Context stats summary returned invalid JSON"
|
|
111
|
+
fi
|
|
112
|
+
else
|
|
113
|
+
fail "Context stats summary script failed: $result"
|
|
114
|
+
fi
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
# Test 4: Context Query
|
|
118
|
+
test_context_query() {
|
|
119
|
+
echo "Running: Context Query Test"
|
|
120
|
+
|
|
121
|
+
# Create reflections with specific keywords
|
|
122
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
123
|
+
--context '{"task": "authentication", "features": ["JWT", "OAuth"]}' \
|
|
124
|
+
--memory-path "$TEST_DIR/test-query.sqlite" > /dev/null 2>&1
|
|
125
|
+
|
|
126
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
127
|
+
--context '{"task": "deployment", "features": ["Docker", "K8s"]}' \
|
|
128
|
+
--memory-path "$TEST_DIR/test-query.sqlite" > /dev/null 2>&1
|
|
129
|
+
|
|
130
|
+
# Query for authentication-related contexts
|
|
131
|
+
if result=$("$SCRIPT_DIR/invoke-context-query.sh" \
|
|
132
|
+
--keywords "authentication,JWT" \
|
|
133
|
+
--similarity-threshold 0.3 \
|
|
134
|
+
--max-results 5 \
|
|
135
|
+
--memory-path "$TEST_DIR/test-query.sqlite" 2>&1); then
|
|
136
|
+
|
|
137
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
138
|
+
# Check if results have similarity scores
|
|
139
|
+
if echo "$result" | jq -e '.[0].similarity' > /dev/null 2>&1; then
|
|
140
|
+
pass "Context query finds similar contexts"
|
|
141
|
+
else
|
|
142
|
+
fail "Context query results missing similarity scores"
|
|
143
|
+
fi
|
|
144
|
+
else
|
|
145
|
+
fail "Context query returned invalid JSON"
|
|
146
|
+
fi
|
|
147
|
+
else
|
|
148
|
+
fail "Context query script failed: $result"
|
|
149
|
+
fi
|
|
150
|
+
}
|
|
151
|
+
|
|
152
|
+
# Test 5: Context Injection
|
|
153
|
+
test_context_inject() {
|
|
154
|
+
echo "Running: Context Injection Test"
|
|
155
|
+
|
|
156
|
+
# Create source context file
|
|
157
|
+
local context_file="$TEST_DIR/inject-source.json"
|
|
158
|
+
echo '{"historical": "data", "priority": 0.9, "insights": ["learned behavior"]}' > "$context_file"
|
|
159
|
+
|
|
160
|
+
# Test deep merge strategy
|
|
161
|
+
if result=$("$SCRIPT_DIR/invoke-context-inject.sh" \
|
|
162
|
+
--context-file "$context_file" \
|
|
163
|
+
--target-task "test-inject-task" \
|
|
164
|
+
--merge-strategy deep 2>&1); then
|
|
165
|
+
|
|
166
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
167
|
+
# Check injection metadata
|
|
168
|
+
if echo "$result" | jq -e '.taskId and .mergeStrategy and .context' > /dev/null 2>&1; then
|
|
169
|
+
pass "Context injection merges successfully"
|
|
170
|
+
else
|
|
171
|
+
fail "Context injection missing required fields"
|
|
172
|
+
fi
|
|
173
|
+
else
|
|
174
|
+
fail "Context injection returned invalid JSON"
|
|
175
|
+
fi
|
|
176
|
+
else
|
|
177
|
+
fail "Context injection script failed: $result"
|
|
178
|
+
fi
|
|
179
|
+
}
|
|
180
|
+
|
|
181
|
+
# Test 6: Context Curation - Simple Merge
|
|
182
|
+
test_context_curate_simple() {
|
|
183
|
+
echo "Running: Context Curation (Simple) Test"
|
|
184
|
+
|
|
185
|
+
# Create multiple context files
|
|
186
|
+
local ctx1="$TEST_DIR/curate-ctx1.json"
|
|
187
|
+
local ctx2="$TEST_DIR/curate-ctx2.json"
|
|
188
|
+
local ctx3="$TEST_DIR/curate-ctx3.json"
|
|
189
|
+
|
|
190
|
+
echo '{"agent": "coder-1", "confidence": 0.85, "result": "implemented"}' > "$ctx1"
|
|
191
|
+
echo '{"agent": "reviewer-1", "confidence": 0.90, "result": "approved"}' > "$ctx2"
|
|
192
|
+
echo '{"agent": "tester-1", "confidence": 0.80, "result": "validated"}' > "$ctx3"
|
|
193
|
+
|
|
194
|
+
# Test simple merge
|
|
195
|
+
if result=$("$SCRIPT_DIR/invoke-context-curate.sh" \
|
|
196
|
+
--contexts "$ctx1,$ctx2,$ctx3" \
|
|
197
|
+
--strategy simple 2>&1); then
|
|
198
|
+
|
|
199
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
200
|
+
# Check curation metadata
|
|
201
|
+
if echo "$result" | jq -e '.curated and .strategy == "simple" and .sourceCount == 3' > /dev/null 2>&1; then
|
|
202
|
+
pass "Context curation handles simple merge"
|
|
203
|
+
else
|
|
204
|
+
fail "Context curation metadata incorrect"
|
|
205
|
+
fi
|
|
206
|
+
else
|
|
207
|
+
fail "Context curation returned invalid JSON"
|
|
208
|
+
fi
|
|
209
|
+
else
|
|
210
|
+
fail "Context curation script failed: $result"
|
|
211
|
+
fi
|
|
212
|
+
}
|
|
213
|
+
|
|
214
|
+
# Test 7: Context Curation - Consensus Weighted
|
|
215
|
+
test_context_curate_consensus() {
|
|
216
|
+
echo "Running: Context Curation (Consensus) Test"
|
|
217
|
+
|
|
218
|
+
# Use same files as simple test
|
|
219
|
+
local ctx1="$TEST_DIR/curate-ctx1.json"
|
|
220
|
+
local ctx2="$TEST_DIR/curate-ctx2.json"
|
|
221
|
+
local ctx3="$TEST_DIR/curate-ctx3.json"
|
|
222
|
+
|
|
223
|
+
# Test consensus-weighted merge
|
|
224
|
+
if result=$("$SCRIPT_DIR/invoke-context-curate.sh" \
|
|
225
|
+
--contexts "$ctx1,$ctx2,$ctx3" \
|
|
226
|
+
--strategy consensus-weighted 2>&1); then
|
|
227
|
+
|
|
228
|
+
if echo "$result" | jq . > /dev/null 2>&1; then
|
|
229
|
+
if echo "$result" | jq -e '.strategy == "consensus-weighted"' > /dev/null 2>&1; then
|
|
230
|
+
pass "Context curation handles consensus weighting"
|
|
231
|
+
else
|
|
232
|
+
fail "Context curation strategy not applied"
|
|
233
|
+
fi
|
|
234
|
+
else
|
|
235
|
+
fail "Context curation consensus returned invalid JSON"
|
|
236
|
+
fi
|
|
237
|
+
else
|
|
238
|
+
fail "Context curation consensus script failed: $result"
|
|
239
|
+
fi
|
|
240
|
+
}
|
|
241
|
+
|
|
242
|
+
# Test 8: Integration Test - Full CFN Loop Workflow
|
|
243
|
+
test_cfn_loop_integration() {
|
|
244
|
+
echo "Running: CFN Loop Integration Test"
|
|
245
|
+
|
|
246
|
+
local loop_db="$TEST_DIR/cfn-loop.sqlite"
|
|
247
|
+
|
|
248
|
+
# Loop 3: Primary implementation
|
|
249
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
250
|
+
--context '{"phase": "loop3", "agent": "coder-1", "task": "implement-feature"}' \
|
|
251
|
+
--memory-path "$loop_db" \
|
|
252
|
+
--output "$TEST_DIR/loop3-agent1.json" > /dev/null 2>&1
|
|
253
|
+
|
|
254
|
+
"$SCRIPT_DIR/invoke-context-reflect.sh" \
|
|
255
|
+
--context '{"phase": "loop3", "agent": "devops-1", "task": "deploy-infrastructure"}' \
|
|
256
|
+
--memory-path "$loop_db" \
|
|
257
|
+
--output "$TEST_DIR/loop3-agent2.json" > /dev/null 2>&1
|
|
258
|
+
|
|
259
|
+
# Loop 2: Validation consensus
|
|
260
|
+
"$SCRIPT_DIR/invoke-context-curate.sh" \
|
|
261
|
+
--contexts "$TEST_DIR/loop3-agent1.json,$TEST_DIR/loop3-agent2.json" \
|
|
262
|
+
--strategy consensus-weighted \
|
|
263
|
+
--output "$TEST_DIR/loop2-merged.json" > /dev/null 2>&1
|
|
264
|
+
|
|
265
|
+
# Product Owner: Final decision
|
|
266
|
+
if "$SCRIPT_DIR/invoke-context-inject.sh" \
|
|
267
|
+
--context-file "$TEST_DIR/loop2-merged.json" \
|
|
268
|
+
--target-task "cfn-loop-final" \
|
|
269
|
+
--merge-strategy deep \
|
|
270
|
+
--output "$TEST_DIR/final-context.json" > /dev/null 2>&1; then
|
|
271
|
+
|
|
272
|
+
# Validate final output exists and is valid JSON
|
|
273
|
+
if [ -f "$TEST_DIR/final-context.json" ] && jq . "$TEST_DIR/final-context.json" > /dev/null 2>&1; then
|
|
274
|
+
pass "CFN Loop integration workflow completes successfully"
|
|
275
|
+
else
|
|
276
|
+
fail "CFN Loop final context invalid"
|
|
277
|
+
fi
|
|
278
|
+
else
|
|
279
|
+
fail "CFN Loop integration workflow failed"
|
|
280
|
+
fi
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
# Run all tests
|
|
284
|
+
echo "========================================="
|
|
285
|
+
echo "ACE System Skill Test Suite"
|
|
286
|
+
echo "========================================="
|
|
287
|
+
echo ""
|
|
288
|
+
|
|
289
|
+
test_context_reflect
|
|
290
|
+
test_context_stats
|
|
291
|
+
test_context_stats_summary
|
|
292
|
+
test_context_query
|
|
293
|
+
test_context_inject
|
|
294
|
+
test_context_curate_simple
|
|
295
|
+
test_context_curate_consensus
|
|
296
|
+
test_cfn_loop_integration
|
|
297
|
+
|
|
298
|
+
echo ""
|
|
299
|
+
echo "========================================="
|
|
300
|
+
echo "Test Results"
|
|
301
|
+
echo "========================================="
|
|
302
|
+
echo "PASS: $PASS_COUNT"
|
|
303
|
+
echo "FAIL: $FAIL_COUNT"
|
|
304
|
+
echo ""
|
|
305
|
+
|
|
306
|
+
if [ $FAIL_COUNT -eq 0 ]; then
|
|
307
|
+
echo "All tests passed!"
|
|
308
|
+
exit 0
|
|
309
|
+
else
|
|
310
|
+
echo "Some tests failed."
|
|
311
|
+
exit 1
|
|
312
|
+
fi
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# ACE System A/B Test Tracking
|
|
3
|
+
|
|
4
|
+
set -euo pipefail
|
|
5
|
+
|
|
6
|
+
# Input parameters
|
|
7
|
+
TASK_ID="${1:?Task ID required}"
|
|
8
|
+
AGENT_ID="${2:?Agent ID required}"
|
|
9
|
+
ACE_ENABLED="${3:-false}"
|
|
10
|
+
|
|
11
|
+
# Redis key for A/B test tracking
|
|
12
|
+
REDIS_KEY="ace:ab_test:${TASK_ID}:${AGENT_ID}"
|
|
13
|
+
|
|
14
|
+
# Track A/B test metadata
|
|
15
|
+
track_ab_test() {
|
|
16
|
+
local context_relevance_score="${4:-0.5}"
|
|
17
|
+
|
|
18
|
+
redis-cli HMSET "$REDIS_KEY" \
|
|
19
|
+
enabled "$ACE_ENABLED" \
|
|
20
|
+
timestamp "$(date +%s)" \
|
|
21
|
+
context_relevance_score "$context_relevance_score"
|
|
22
|
+
|
|
23
|
+
# Set 7-day expiration
|
|
24
|
+
redis-cli EXPIRE "$REDIS_KEY" 604800
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
# Log context injection details
|
|
28
|
+
log_context_injection() {
|
|
29
|
+
local domain="${4:-undefined}"
|
|
30
|
+
local injection_time="${5:-0}"
|
|
31
|
+
|
|
32
|
+
redis-cli HMSET "${REDIS_KEY}:injection" \
|
|
33
|
+
domain "$domain" \
|
|
34
|
+
injection_time "$injection_time"
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
# Main execution
|
|
38
|
+
track_ab_test "$@"
|
|
39
|
+
log_context_injection "$@"
|
|
40
|
+
|
|
41
|
+
# Output for logging/debugging
|
|
42
|
+
echo "Tracked A/B test for Task: $TASK_ID, Agent: $AGENT_ID, ACE Enabled: $ACE_ENABLED"
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Update reflection status
|
|
3
|
+
# Usage: ./update-reflection.sh --reflection-id refl-123 --status merged --merged-bullet-ids '["STRAT-007"]'
|
|
4
|
+
|
|
5
|
+
set -e
|
|
6
|
+
|
|
7
|
+
DB_PATH="${ACE_DB_PATH:-./.artifacts/database/swarm-memory.db}"
|
|
8
|
+
REFLECTION_ID=""
|
|
9
|
+
STATUS=""
|
|
10
|
+
MERGED_BULLET_IDS=""
|
|
11
|
+
|
|
12
|
+
while [[ $# -gt 0 ]]; do
|
|
13
|
+
case $1 in
|
|
14
|
+
--reflection-id) REFLECTION_ID="$2"; shift 2 ;;
|
|
15
|
+
--status) STATUS="$2"; shift 2 ;;
|
|
16
|
+
--merged-bullet-ids) MERGED_BULLET_IDS="$2"; shift 2 ;;
|
|
17
|
+
*) echo "Unknown option: $1"; exit 1 ;;
|
|
18
|
+
esac
|
|
19
|
+
done
|
|
20
|
+
|
|
21
|
+
if [ -z "$REFLECTION_ID" ] || [ -z "$STATUS" ]; then
|
|
22
|
+
echo "Error: --reflection-id and --status required"
|
|
23
|
+
exit 1
|
|
24
|
+
fi
|
|
25
|
+
|
|
26
|
+
sqlite3 "$DB_PATH" <<EOF
|
|
27
|
+
UPDATE context_reflections
|
|
28
|
+
SET curator_status = '${STATUS}',
|
|
29
|
+
merged_bullet_ids = $([ -n "$MERGED_BULLET_IDS" ] && echo "'$MERGED_BULLET_IDS'" || echo "NULL"),
|
|
30
|
+
processed_at = CURRENT_TIMESTAMP
|
|
31
|
+
WHERE id = '${REFLECTION_ID}';
|
|
32
|
+
EOF
|
|
33
|
+
|
|
34
|
+
COUNT=$(sqlite3 "$DB_PATH" "SELECT changes();")
|
|
35
|
+
|
|
36
|
+
if [ "$COUNT" -gt 0 ]; then
|
|
37
|
+
echo "{\"status\":\"success\",\"reflection_id\":\"${REFLECTION_ID}\",\"new_status\":\"${STATUS}\"}"
|
|
38
|
+
else
|
|
39
|
+
echo "{\"status\":\"error\",\"message\":\"Reflection not found: ${REFLECTION_ID}\"}"
|
|
40
|
+
exit 1
|
|
41
|
+
fi
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# Agent Discovery Skill
|
|
2
|
+
|
|
3
|
+
## Purpose
|
|
4
|
+
Automatically discover and catalog available agents in the Claude Flow Novice system by scanning the `.claude/agents/` directory and extracting metadata from agent definition files.
|
|
5
|
+
|
|
6
|
+
## Key Features
|
|
7
|
+
- Scan `.claude/agents/*.md` files
|
|
8
|
+
- Extract metadata: name, description, type, keywords/tags
|
|
9
|
+
- Generate structured JSON registry
|
|
10
|
+
- Categorize agents by loop (Loop 3 or Loop 2)
|
|
11
|
+
|
|
12
|
+
## Agent Categorization
|
|
13
|
+
- **Loop 3 (Implementers)**:
|
|
14
|
+
- Types: coder, developer, backend-dev, react-frontend-engineer, architect, researcher, designer, writer, analyst
|
|
15
|
+
- **Loop 2 (Validators)**:
|
|
16
|
+
- Types: reviewer, tester, security-auditor, performance-analyzer, validator
|
|
17
|
+
- **Coordinators**: Separate category, not included in agent selection
|
|
18
|
+
|
|
19
|
+
## Usage
|
|
20
|
+
```bash
|
|
21
|
+
./.claude/skills/agent-discovery/discover-agents.sh
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
## Output
|
|
25
|
+
Generates `.claude/skills/agent-discovery/agents-registry.json` with comprehensive agent metadata.
|
|
26
|
+
|
|
27
|
+
## Error Handling
|
|
28
|
+
- Robust parsing of agent files
|
|
29
|
+
- Handles missing or malformed frontmatter
|
|
30
|
+
- Generates sensible defaults for missing metadata
|
|
31
|
+
|
|
32
|
+
## Performance
|
|
33
|
+
- Optimized for quick scanning of agent files
|
|
34
|
+
- Minimal computational overhead
|
|
35
|
+
- Periodic refresh recommended
|
|
36
|
+
|
|
37
|
+
## Best Practices
|
|
38
|
+
- Keep agent definition files well-structured
|
|
39
|
+
- Include comprehensive frontmatter
|
|
40
|
+
- Use consistent metadata across agent definitions
|
|
File without changes
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
{
|
|
2
|
+
"agents": [
|
|
3
|
+
{
|
|
4
|
+
"name": "coder",
|
|
5
|
+
"description": "MUST BE USED when implementing features, writing code, fixing bugs.\nUse PROACTIVELY for API development, component creation, refactoring.\nKeywords - implement, code, build, develop, create, refactor, optimize, fix\n",
|
|
6
|
+
"type": "specialist",
|
|
7
|
+
"keywords": [
|
|
8
|
+
"code-implementation",
|
|
9
|
+
"feature-development",
|
|
10
|
+
"test-driven-development",
|
|
11
|
+
"refactoring",
|
|
12
|
+
"api-design",
|
|
13
|
+
"quality-engineering"
|
|
14
|
+
]
|
|
15
|
+
}
|
|
16
|
+
],
|
|
17
|
+
"last_updated": "2025-10-24T18:00:47Z",
|
|
18
|
+
"total_agents": 1
|
|
19
|
+
}
|