claude-flow-novice 2.9.0 → 2.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.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/agents/agent-loader.js +165 -146
- package/dist/agents/agent-loader.js.map +1 -1
- package/dist/cli/agent-executor.js +1 -1
- package/dist/cli/agent-executor.js.map +1 -1
- package/dist/cli/config-manager.js +109 -91
- package/dist/cli/config-manager.js.map +1 -1
- package/package.json +43 -7
- package/readme/README.md +15 -4
- package/scripts/init-project.js +84 -29
- 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
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "claude-flow-novice",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.10.0",
|
|
4
4
|
"description": "AI agent orchestration framework with namespace-isolated skills, agents, and CFN Loop validation. Safe installation with ~0.01% collision risk.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|
|
@@ -18,7 +18,28 @@
|
|
|
18
18
|
"files": [
|
|
19
19
|
"dist/",
|
|
20
20
|
".claude/agents/cfn-dev-team/",
|
|
21
|
-
".claude/skills/cfn
|
|
21
|
+
".claude/skills/cfn-ace-system/",
|
|
22
|
+
".claude/skills/cfn-agent-discovery/",
|
|
23
|
+
".claude/skills/cfn-agent-execution/",
|
|
24
|
+
".claude/skills/cfn-agent-output-processing/",
|
|
25
|
+
".claude/skills/cfn-agent-selector/",
|
|
26
|
+
".claude/skills/cfn-agent-spawning/",
|
|
27
|
+
".claude/skills/cfn-analytics/",
|
|
28
|
+
".claude/skills/cfn-checkpoint-state/",
|
|
29
|
+
".claude/skills/cfn-config-management/",
|
|
30
|
+
".claude/skills/cfn-event-bus/",
|
|
31
|
+
".claude/skills/cfn-fleet-manager/",
|
|
32
|
+
".claude/skills/cfn-hook-pipeline/",
|
|
33
|
+
".claude/skills/cfn-hybrid-routing/",
|
|
34
|
+
".claude/skills/cfn-loop-orchestration/",
|
|
35
|
+
".claude/skills/cfn-loop-validation/",
|
|
36
|
+
".claude/skills/cfn-process-lifecycle/",
|
|
37
|
+
".claude/skills/cfn-product-owner-decision/",
|
|
38
|
+
".claude/skills/cfn-redis-coordination/",
|
|
39
|
+
".claude/skills/cfn-sqlite-memory/",
|
|
40
|
+
".claude/skills/cfn-test-execution/",
|
|
41
|
+
".claude/skills/cfn-transparency-middleware/",
|
|
42
|
+
".claude/skills/cfn-webapp-testing/",
|
|
22
43
|
".claude/hooks/cfn-*",
|
|
23
44
|
".claude/commands/cfn/",
|
|
24
45
|
".claude/cfn-data/",
|
|
@@ -28,9 +49,11 @@
|
|
|
28
49
|
"!scripts/test-*.sh",
|
|
29
50
|
"!scripts/*-validation.cjs",
|
|
30
51
|
"!scripts/deployment/",
|
|
52
|
+
"tools/simple-complexity.sh",
|
|
53
|
+
"tools/install-lizard.sh",
|
|
31
54
|
"README.md",
|
|
32
55
|
"LICENSE",
|
|
33
|
-
"CFN-CLAUDE.md"
|
|
56
|
+
".claude/root-claude-distribute/CFN-CLAUDE.md"
|
|
34
57
|
],
|
|
35
58
|
"keywords": [
|
|
36
59
|
"ai",
|
|
@@ -50,7 +73,7 @@
|
|
|
50
73
|
"license": "MIT",
|
|
51
74
|
"repository": {
|
|
52
75
|
"type": "git",
|
|
53
|
-
"url": "https://github.com/yourusername/claude-flow-novice.git"
|
|
76
|
+
"url": "git+https://github.com/yourusername/claude-flow-novice.git"
|
|
54
77
|
},
|
|
55
78
|
"bugs": {
|
|
56
79
|
"url": "https://github.com/yourusername/claude-flow-novice/issues"
|
|
@@ -62,10 +85,16 @@
|
|
|
62
85
|
"build:swc": "swc src -d dist --config-file .swcrc --ignore '**/*.test.ts' --ignore '**/*.test.tsx' --ignore '**/*.spec.ts'",
|
|
63
86
|
"clean": "rm -rf dist",
|
|
64
87
|
"test": "jest",
|
|
88
|
+
"test:cfn-v3": "bash tests/cfn-v3-orchestration/run-full-suite.sh",
|
|
89
|
+
"test:cfn-v3:connections": "node tests/cfn-v3-orchestration/tests/02-worker-connections.test.js",
|
|
90
|
+
"test:cfn-v3:confidence": "node tests/cfn-v3-orchestration/tests/03-confidence-scores.test.js",
|
|
91
|
+
"test:cfn-v3:handoffs": "node tests/cfn-v3-orchestration/tests/04-handoff-coordination.test.js",
|
|
92
|
+
"test:cfn-v3:dataflow": "node tests/cfn-v3-orchestration/tests/05-data-flow.test.js",
|
|
93
|
+
"test:cfn-v3:shutdown": "node tests/cfn-v3-orchestration/tests/06-graceful-shutdown.test.js",
|
|
65
94
|
"typecheck": "tsc --noEmit",
|
|
66
95
|
"prepublishOnly": "npm run build && ./scripts/verify-no-secrets.sh",
|
|
67
96
|
"prepack": "npm run build",
|
|
68
|
-
"postinstall": "node -
|
|
97
|
+
"postinstall": "node scripts/init-project.js",
|
|
69
98
|
"verify-package": "npm pack --dry-run",
|
|
70
99
|
"portal:start": "./scripts/start-portal.sh",
|
|
71
100
|
"portal:stop": "./scripts/stop-portal.sh",
|
|
@@ -88,6 +117,11 @@
|
|
|
88
117
|
"sqlite": "^5.1.1",
|
|
89
118
|
"sqlite3": "^5.1.7"
|
|
90
119
|
},
|
|
120
|
+
"optionalDependencies": {},
|
|
121
|
+
"peerDependencies": {},
|
|
122
|
+
"engines": {
|
|
123
|
+
"node": ">=18.0.0"
|
|
124
|
+
},
|
|
91
125
|
"devDependencies": {
|
|
92
126
|
"@swc/cli": "^0.1.62",
|
|
93
127
|
"@swc/core": "^1.3.0",
|
|
@@ -111,7 +145,9 @@
|
|
|
111
145
|
"tsx": "^4.7.0",
|
|
112
146
|
"typescript": "^5.6.3"
|
|
113
147
|
},
|
|
114
|
-
"
|
|
115
|
-
"
|
|
148
|
+
"directories": {
|
|
149
|
+
"doc": "docs",
|
|
150
|
+
"example": "examples",
|
|
151
|
+
"test": "tests"
|
|
116
152
|
}
|
|
117
153
|
}
|
package/readme/README.md
CHANGED
|
@@ -1,7 +1,12 @@
|
|
|
1
|
-
# Claude Flow Novice v2 Documentation
|
|
1
|
+
# Claude Flow Novice v2.9.1 Documentation
|
|
2
2
|
|
|
3
|
-
**Version:** 2.
|
|
4
|
-
**Last Updated:** 2025-10-
|
|
3
|
+
**Version:** 2.9.1 (Skills-First Architecture)
|
|
4
|
+
**Last Updated:** 2025-10-25
|
|
5
|
+
|
|
6
|
+
**Package Metrics**:
|
|
7
|
+
- 2.4 MB unpacked
|
|
8
|
+
- 303 files
|
|
9
|
+
- Namespace-isolated installation
|
|
5
10
|
|
|
6
11
|
## Overview
|
|
7
12
|
|
|
@@ -10,6 +15,10 @@ Claude Flow Novice is a production-ready AI agent orchestration framework built
|
|
|
10
15
|
## Quick Start
|
|
11
16
|
|
|
12
17
|
```bash
|
|
18
|
+
# Install and initialize
|
|
19
|
+
npm install claude-flow-novice
|
|
20
|
+
npx cfn-init
|
|
21
|
+
|
|
13
22
|
# Initialize a swarm with skills
|
|
14
23
|
npx claude-flow-novice swarm "Task Description" \
|
|
15
24
|
--skills=redis-coordination,agent-spawning \
|
|
@@ -59,11 +68,13 @@ npx claude-flow-novice swarm "Task Description" \
|
|
|
59
68
|
- **Modular Skills**: Independently maintainable, testable capabilities
|
|
60
69
|
- **Explicit Dependencies**: Redis pub/sub coordination, no implicit coupling
|
|
61
70
|
- **Thin Orchestration**: Main chat delegates to skills, minimal coordination logic
|
|
71
|
+
- **Namespace-Isolated Installation**: ~0.01% collision risk
|
|
72
|
+
- **Preserves User Custom Agents/Skills/Hooks**
|
|
62
73
|
|
|
63
74
|
### Zero-Token Coordination
|
|
64
75
|
- **Redis BLPOP**: Agents wait without API calls (0 tokens while idle)
|
|
65
76
|
- **Instant Wake-Up**: <100ms latency for agent activation
|
|
66
|
-
- **Scalable**:
|
|
77
|
+
- **Scalable**: 23 agents in cfn-dev-team
|
|
67
78
|
|
|
68
79
|
### CFN Loop (Consensus Framework)
|
|
69
80
|
- **Loop 3**: Implementation agents (coders, researchers)
|
package/scripts/init-project.js
CHANGED
|
@@ -4,6 +4,7 @@ import fs from 'fs';
|
|
|
4
4
|
import path from 'path';
|
|
5
5
|
import { fileURLToPath } from 'url';
|
|
6
6
|
import { promisify } from 'util';
|
|
7
|
+
import { spawnSync } from 'child_process';
|
|
7
8
|
import chalk from 'chalk';
|
|
8
9
|
|
|
9
10
|
const __filename = fileURLToPath(import.meta.url);
|
|
@@ -13,30 +14,35 @@ const cpAsync = promisify(fs.cp);
|
|
|
13
14
|
const mkdirAsync = promisify(fs.mkdir);
|
|
14
15
|
const existsAsync = promisify(fs.exists);
|
|
15
16
|
|
|
17
|
+
// Find the CFN package root (works both in dev and installed contexts)
|
|
18
|
+
const cfnRoot = path.resolve(process.cwd(), 'node_modules', 'claude-flow-novice');
|
|
19
|
+
|
|
16
20
|
// Configuration for CFN initialization paths
|
|
17
21
|
const CFN_PATHS = {
|
|
18
22
|
agents: {
|
|
19
|
-
src: path.
|
|
23
|
+
src: path.join(cfnRoot, '.claude/agents/cfn-dev-team'),
|
|
20
24
|
dest: '.claude/agents/cfn-dev-team'
|
|
21
25
|
},
|
|
22
26
|
skills: {
|
|
23
|
-
src: path.
|
|
24
|
-
dest: '.claude/skills
|
|
27
|
+
src: path.join(cfnRoot, '.claude/skills'),
|
|
28
|
+
dest: '.claude/skills',
|
|
29
|
+
pattern: 'cfn-*'
|
|
25
30
|
},
|
|
26
31
|
hooks: {
|
|
27
|
-
src: path.
|
|
28
|
-
dest: '.claude/hooks
|
|
32
|
+
src: path.join(cfnRoot, '.claude/hooks'),
|
|
33
|
+
dest: '.claude/hooks',
|
|
34
|
+
pattern: 'cfn-*'
|
|
29
35
|
},
|
|
30
36
|
commands: {
|
|
31
|
-
src: path.
|
|
37
|
+
src: path.join(cfnRoot, '.claude/commands/cfn'),
|
|
32
38
|
dest: '.claude/commands/cfn'
|
|
33
39
|
},
|
|
34
40
|
cfnData: {
|
|
35
|
-
src: path.
|
|
41
|
+
src: path.join(cfnRoot, '.claude/cfn-data'),
|
|
36
42
|
dest: '.claude/cfn-data'
|
|
37
43
|
},
|
|
38
44
|
cfnAgentsIgnore: {
|
|
39
|
-
src: path.
|
|
45
|
+
src: path.join(cfnRoot, '.claude/cfn-agents-ignore'),
|
|
40
46
|
dest: '.claude/cfn-agents-ignore'
|
|
41
47
|
}
|
|
42
48
|
};
|
|
@@ -60,25 +66,38 @@ async function ensureDirectories() {
|
|
|
60
66
|
}
|
|
61
67
|
|
|
62
68
|
async function verifyCfnInstallation() {
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
} catch (error) {
|
|
69
|
+
const cfnPath = path.resolve(process.cwd(), 'node_modules', 'claude-flow-novice');
|
|
70
|
+
if (!fs.existsSync(cfnPath)) {
|
|
66
71
|
console.error(chalk.red('❌ claude-flow-novice not installed. Please run: npm install claude-flow-novice'));
|
|
67
72
|
process.exit(1);
|
|
68
73
|
}
|
|
69
74
|
}
|
|
70
75
|
|
|
71
|
-
async function copyFiles(src, dest, pattern
|
|
76
|
+
async function copyFiles(src, dest, pattern) {
|
|
72
77
|
try {
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
78
|
+
if (!fs.existsSync(src)) {
|
|
79
|
+
console.warn(chalk.yellow(`⚠️ Source not found: ${src}`));
|
|
80
|
+
return false;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
if (pattern) {
|
|
84
|
+
// Copy only files/dirs matching pattern (e.g., cfn-*)
|
|
85
|
+
const items = fs.readdirSync(src);
|
|
86
|
+
const matched = items.filter(item => item.startsWith(pattern.replace('*', '')));
|
|
87
|
+
|
|
88
|
+
for (const item of matched) {
|
|
89
|
+
const itemSrc = path.join(src, item);
|
|
90
|
+
const itemDest = path.join(dest, item);
|
|
91
|
+
await mkdirAsync(path.dirname(itemDest), { recursive: true });
|
|
92
|
+
await cpAsync(itemSrc, itemDest, { recursive: true, force: true });
|
|
79
93
|
}
|
|
80
|
-
|
|
81
|
-
|
|
94
|
+
console.log(chalk.green(`✅ Copied ${matched.length} ${pattern} items from ${src}`));
|
|
95
|
+
} else {
|
|
96
|
+
// Copy entire directory
|
|
97
|
+
await mkdirAsync(path.dirname(dest), { recursive: true });
|
|
98
|
+
await cpAsync(src, dest, { recursive: true, force: true });
|
|
99
|
+
console.log(chalk.green(`✅ Copied ${src} → ${dest}`));
|
|
100
|
+
}
|
|
82
101
|
return true;
|
|
83
102
|
} catch (error) {
|
|
84
103
|
console.error(chalk.red(`❌ Error copying ${src}: ${error.message}`));
|
|
@@ -87,14 +106,14 @@ async function copyFiles(src, dest, pattern = '*') {
|
|
|
87
106
|
}
|
|
88
107
|
|
|
89
108
|
async function copyCfnClaudeMarkdown() {
|
|
90
|
-
const cfnClaudeMdPath = path.
|
|
109
|
+
const cfnClaudeMdPath = path.join(cfnRoot, '.claude/root-claude-distribute/CFN-CLAUDE.md');
|
|
91
110
|
const destPath = path.resolve(process.cwd(), 'CFN-CLAUDE.md');
|
|
92
111
|
|
|
93
|
-
if (
|
|
112
|
+
if (fs.existsSync(cfnClaudeMdPath)) {
|
|
94
113
|
try {
|
|
95
114
|
await cpAsync(cfnClaudeMdPath, destPath);
|
|
96
115
|
console.log(chalk.green('📄 CFN-CLAUDE.md copied to project root'));
|
|
97
|
-
console.log(chalk.yellow('💡
|
|
116
|
+
console.log(chalk.yellow('💡 Activate CFN workflows: cp CFN-CLAUDE.md CLAUDE.md'));
|
|
98
117
|
} catch (error) {
|
|
99
118
|
console.error(chalk.red(`❌ Failed to copy CFN-CLAUDE.md: ${error.message}`));
|
|
100
119
|
}
|
|
@@ -103,8 +122,40 @@ async function copyCfnClaudeMarkdown() {
|
|
|
103
122
|
}
|
|
104
123
|
}
|
|
105
124
|
|
|
125
|
+
async function installLizard() {
|
|
126
|
+
console.log(chalk.blue('\n🔧 Installing lizard (complexity analyzer)...'));
|
|
127
|
+
|
|
128
|
+
// Check if lizard is already installed
|
|
129
|
+
const checkResult = spawnSync('which', ['lizard'], { encoding: 'utf-8' });
|
|
130
|
+
if (checkResult.status === 0) {
|
|
131
|
+
console.log(chalk.green('✅ Lizard already installed'));
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
// Try to install lizard via pip3
|
|
136
|
+
const pipCommands = [
|
|
137
|
+
['pip3', 'install', '--user', '--break-system-packages', 'lizard'],
|
|
138
|
+
['pip3', 'install', '--user', 'lizard'],
|
|
139
|
+
['pip', 'install', '--user', 'lizard']
|
|
140
|
+
];
|
|
141
|
+
|
|
142
|
+
for (const cmd of pipCommands) {
|
|
143
|
+
const result = spawnSync(cmd[0], cmd.slice(1), { encoding: 'utf-8' });
|
|
144
|
+
if (result.status === 0) {
|
|
145
|
+
console.log(chalk.green('✅ Lizard installed successfully'));
|
|
146
|
+
console.log(chalk.yellow('💡 Add to PATH: export PATH="$HOME/.local/bin:$PATH"'));
|
|
147
|
+
return;
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
// If all attempts failed, provide instructions
|
|
152
|
+
console.log(chalk.yellow('⚠️ Could not auto-install lizard. Manual installation required:'));
|
|
153
|
+
console.log(chalk.gray(' pip3 install --user lizard'));
|
|
154
|
+
console.log(chalk.gray(' or run: ./tools/install-lizard.sh'));
|
|
155
|
+
}
|
|
156
|
+
|
|
106
157
|
async function initializeCfnProject() {
|
|
107
|
-
console.log(chalk.blue('🚀 Claude Flow Novice CFN Initialization'));
|
|
158
|
+
console.log(chalk.blue('\n🚀 Claude Flow Novice CFN Initialization\n'));
|
|
108
159
|
|
|
109
160
|
try {
|
|
110
161
|
// Verify prerequisites
|
|
@@ -115,8 +166,8 @@ async function initializeCfnProject() {
|
|
|
115
166
|
const copyResults = [];
|
|
116
167
|
|
|
117
168
|
// Copy CFN files
|
|
118
|
-
for (const [key,
|
|
119
|
-
const result = await copyFiles(src, dest);
|
|
169
|
+
for (const [key, config] of Object.entries(CFN_PATHS)) {
|
|
170
|
+
const result = await copyFiles(config.src, config.dest, config.pattern);
|
|
120
171
|
copyResults.push(result);
|
|
121
172
|
}
|
|
122
173
|
|
|
@@ -129,10 +180,14 @@ async function initializeCfnProject() {
|
|
|
129
180
|
|
|
130
181
|
console.log(chalk.green(`\n✅ CFN Installation Complete`));
|
|
131
182
|
console.log(chalk.blue(` Copied ${successCount}/${totalPaths} paths successfully`));
|
|
183
|
+
|
|
184
|
+
// Install lizard for complexity analysis
|
|
185
|
+
await installLizard();
|
|
186
|
+
|
|
132
187
|
console.log(chalk.yellow('\n🔍 Next Steps:'));
|
|
133
|
-
console.log(' 1. Review CFN-CLAUDE.md');
|
|
134
|
-
console.log(' 2.
|
|
135
|
-
console.log(' 3.
|
|
188
|
+
console.log(' 1. Review CFN-CLAUDE.md in project root');
|
|
189
|
+
console.log(' 2. Run your first CFN Loop: npx cfn-loop "Task description"');
|
|
190
|
+
console.log(' 3. Check available agents: ls .claude/agents/cfn-dev-team/*/\n');
|
|
136
191
|
|
|
137
192
|
} catch (error) {
|
|
138
193
|
console.error(chalk.red('❌ CFN Initialization Failed'), error);
|
|
@@ -0,0 +1,43 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
# Run Marketing Infrastructure Integration Tests
|
|
3
|
+
|
|
4
|
+
set -e
|
|
5
|
+
|
|
6
|
+
# Ensure the correct working directory
|
|
7
|
+
cd "$(dirname "$0")/.." || exit 1
|
|
8
|
+
|
|
9
|
+
# Run all marketing test scripts
|
|
10
|
+
echo "🚀 Starting Marketing Infrastructure Integration Tests..."
|
|
11
|
+
|
|
12
|
+
# Function to run test and capture exit code
|
|
13
|
+
run_test() {
|
|
14
|
+
local test_script="$1"
|
|
15
|
+
local start_time=$(date +%s)
|
|
16
|
+
|
|
17
|
+
echo "Running $test_script..."
|
|
18
|
+
|
|
19
|
+
if bash "$test_script"; then
|
|
20
|
+
local end_time=$(date +%s)
|
|
21
|
+
local duration=$((end_time - start_time))
|
|
22
|
+
echo "✅ $test_script PASSED (${duration}s)"
|
|
23
|
+
else
|
|
24
|
+
echo "❌ $test_script FAILED"
|
|
25
|
+
exit 1
|
|
26
|
+
fi
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
# Array of test scripts
|
|
30
|
+
TEST_SCRIPTS=(
|
|
31
|
+
"tests/marketing-email-campaigns-test.sh"
|
|
32
|
+
"tests/marketing-social-publishing-test.sh"
|
|
33
|
+
"tests/marketing-analytics-data-test.sh"
|
|
34
|
+
"tests/marketing-crm-contacts-test.sh"
|
|
35
|
+
)
|
|
36
|
+
|
|
37
|
+
# Run each test script
|
|
38
|
+
for test in "${TEST_SCRIPTS[@]}"; do
|
|
39
|
+
run_test "$test"
|
|
40
|
+
done
|
|
41
|
+
|
|
42
|
+
echo "🎉 All Marketing Infrastructure Integration Tests PASSED!"
|
|
43
|
+
exit 0
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
#!/bin/bash
|
|
2
|
+
|
|
3
|
+
# Path replacements
|
|
4
|
+
SKILL_REPLACEMENTS=(
|
|
5
|
+
".claude/skills/redis-coordination/:\.claude/skills/cfn-redis-coordination/"
|
|
6
|
+
".claude/skills/agent-spawning/:\.claude/skills/cfn-agent-spawning/"
|
|
7
|
+
".claude/skills/playbook/:\.claude/skills/cfn-playbook/"
|
|
8
|
+
".claude/skills/:\.claude/skills/cfn-"
|
|
9
|
+
)
|
|
10
|
+
|
|
11
|
+
HOOK_REPLACEMENTS=(
|
|
12
|
+
".claude/hooks/invoke-post-edit.sh:\.claude/hooks/cfn-invoke-post-edit.sh"
|
|
13
|
+
".claude/hooks/post-edit.sh:\.claude/hooks/cfn-post-edit.sh"
|
|
14
|
+
".claude/hooks/:\.claude/hooks/cfn-"
|
|
15
|
+
)
|
|
16
|
+
|
|
17
|
+
DATA_REPLACEMENTS=(
|
|
18
|
+
".claude/data/:\.claude/cfn-data/"
|
|
19
|
+
)
|
|
20
|
+
|
|
21
|
+
# Function to perform replacements in a file
|
|
22
|
+
replace_paths() {
|
|
23
|
+
local file="$1"
|
|
24
|
+
local replacements=("${@:2}")
|
|
25
|
+
|
|
26
|
+
# Perform replacements for each pattern
|
|
27
|
+
for replacement in "${replacements[@]}"; do
|
|
28
|
+
IFS=':' read -r old_path new_path <<< "$replacement"
|
|
29
|
+
sed -i "s|${old_path}|${new_path}|g" "$file"
|
|
30
|
+
done
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
# Find and update markdown files
|
|
34
|
+
find .claude/agents/cfn-dev-team -name "*.md" | while read -r file; do
|
|
35
|
+
echo "Processing $file"
|
|
36
|
+
|
|
37
|
+
# Skill path replacements
|
|
38
|
+
replace_paths "$file" "${SKILL_REPLACEMENTS[@]}"
|
|
39
|
+
|
|
40
|
+
# Hook path replacements
|
|
41
|
+
replace_paths "$file" "${HOOK_REPLACEMENTS[@]}"
|
|
42
|
+
|
|
43
|
+
# Data path replacements
|
|
44
|
+
replace_paths "$file" "${DATA_REPLACEMENTS[@]}"
|
|
45
|
+
done
|
|
46
|
+
|
|
47
|
+
echo "Path replacements complete!"
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Install lizard complexity analyzer
|
|
3
|
+
|
|
4
|
+
echo "Installing lizard..."
|
|
5
|
+
|
|
6
|
+
# Try pipx first (isolated install)
|
|
7
|
+
if command -v pipx >/dev/null 2>&1; then
|
|
8
|
+
echo "Using pipx..."
|
|
9
|
+
pipx install lizard
|
|
10
|
+
exit 0
|
|
11
|
+
fi
|
|
12
|
+
|
|
13
|
+
# Try pip with user install
|
|
14
|
+
if command -v pip3 >/dev/null 2>&1; then
|
|
15
|
+
echo "Using pip3 --user..."
|
|
16
|
+
pip3 install --user lizard
|
|
17
|
+
|
|
18
|
+
# Add to PATH if needed
|
|
19
|
+
PYTHON_USER_BASE=$(python3 -m site --user-base)
|
|
20
|
+
export PATH="$PYTHON_USER_BASE/bin:$PATH"
|
|
21
|
+
|
|
22
|
+
echo ""
|
|
23
|
+
echo "Add to your ~/.bashrc or ~/.zshrc:"
|
|
24
|
+
echo "export PATH=\"$PYTHON_USER_BASE/bin:\$PATH\""
|
|
25
|
+
exit 0
|
|
26
|
+
fi
|
|
27
|
+
|
|
28
|
+
# Try pip
|
|
29
|
+
if command -v pip >/dev/null 2>&1; then
|
|
30
|
+
echo "Using pip --user..."
|
|
31
|
+
pip install --user lizard
|
|
32
|
+
exit 0
|
|
33
|
+
fi
|
|
34
|
+
|
|
35
|
+
echo "Error: No Python package manager found"
|
|
36
|
+
echo "Install pipx: sudo apt-get install pipx"
|
|
37
|
+
exit 1
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
#!/usr/bin/env bash
|
|
2
|
+
# Simple cyclomatic complexity calculator for bash scripts
|
|
3
|
+
|
|
4
|
+
FILE="$1"
|
|
5
|
+
|
|
6
|
+
if [ ! -f "$FILE" ]; then
|
|
7
|
+
echo "Usage: $0 <bash-script>"
|
|
8
|
+
exit 1
|
|
9
|
+
fi
|
|
10
|
+
|
|
11
|
+
echo "Cyclomatic Complexity Analysis: $(basename "$FILE")"
|
|
12
|
+
echo "=================================================="
|
|
13
|
+
|
|
14
|
+
# Count decision points
|
|
15
|
+
IF_COUNT=$(grep -cE '^\s*(if|elif)\s+' "$FILE" 2>/dev/null || echo 0)
|
|
16
|
+
LOOP_COUNT=$(grep -cE '^\s*(for|while|until)\s+' "$FILE" 2>/dev/null || echo 0)
|
|
17
|
+
CASE_COUNT=$(grep -cE '^\s*case\s+' "$FILE" 2>/dev/null || echo 0)
|
|
18
|
+
AND_OR=$(grep -vE '^\s*#' "$FILE" | grep -oE '(\&\&|\|\|)' | wc -l)
|
|
19
|
+
FUNC_COUNT=$(grep -cE 'function\s+[a-zA-Z_]|^[a-zA-Z_][a-zA-Z0-9_]*\s*\(\)' "$FILE" 2>/dev/null || echo 0)
|
|
20
|
+
|
|
21
|
+
# Calculate total (base 1 + decision points)
|
|
22
|
+
TOTAL=$((1 + IF_COUNT + LOOP_COUNT + CASE_COUNT + AND_OR / 2))
|
|
23
|
+
|
|
24
|
+
echo "Decision Points:"
|
|
25
|
+
echo " if/elif: $IF_COUNT"
|
|
26
|
+
echo " loops: $LOOP_COUNT"
|
|
27
|
+
echo " case: $CASE_COUNT"
|
|
28
|
+
echo " &&/||: $AND_OR"
|
|
29
|
+
echo " functions: $FUNC_COUNT"
|
|
30
|
+
echo ""
|
|
31
|
+
echo "Total Complexity: $TOTAL"
|
|
32
|
+
echo ""
|
|
33
|
+
|
|
34
|
+
if [ $TOTAL -ge 40 ]; then
|
|
35
|
+
echo "Rating: Very Complex (refactor required)"
|
|
36
|
+
elif [ $TOTAL -ge 20 ]; then
|
|
37
|
+
echo "Rating: Complex (refactor recommended)"
|
|
38
|
+
elif [ $TOTAL -ge 10 ]; then
|
|
39
|
+
echo "Rating: Moderate"
|
|
40
|
+
else
|
|
41
|
+
echo "Rating: Simple"
|
|
42
|
+
fi
|
|
43
|
+
|
|
44
|
+
echo "=================================================="
|