claude-flow-novice 2.0.0 → 2.0.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/CLAUDE.md +669 -51
- package/.claude/agents/agent-principles/CODER_AGENT_GUIDELINES.md +1245 -0
- package/.claude/agents/agent-principles/agent-type-guidelines.md +137 -0
- package/.claude/agents/agent-principles/format-selection.md +20 -0
- package/.claude/agents/agent-principles/prompt-engineering.md +165 -35
- package/.claude/agents/agent-principles/quality-metrics.md +83 -2
- package/.claude/agents/analysis/code-analyzer.md +722 -0
- package/.claude/agents/analysis/code-review/analyze-code-quality.md +33 -3
- package/.claude/agents/analysis/perf-analyzer.md +812 -0
- package/.claude/agents/architecture/system-architect.md +25 -11
- package/.claude/agents/cfn-loop/product-owner.md +458 -2
- package/.claude/agents/code-booster.md +13 -2
- package/.claude/agents/consensus/byzantine-coordinator.md +259 -6
- package/.claude/agents/consensus/consensus-builder.md +135 -2
- package/.claude/agents/consensus/crdt-synchronizer.md +307 -771
- package/.claude/agents/consensus/gossip-coordinator.md +227 -2
- package/.claude/agents/consensus/performance-benchmarker.md +385 -704
- package/.claude/agents/consensus/quorum-manager.md +241 -749
- package/.claude/agents/consensus/raft-manager.md +195 -2
- package/.claude/agents/consensus/security-manager.md +461 -518
- package/.claude/agents/core-agents/analyst.md +560 -0
- package/.claude/agents/core-agents/architect.md +578 -0
- package/.claude/agents/core-agents/base-template-generator.md +137 -0
- package/.claude/agents/core-agents/coder.md +409 -0
- package/.claude/agents/core-agents/coordinator.md +1429 -0
- package/.claude/agents/core-agents/planner.md +343 -0
- package/.claude/agents/core-agents/researcher.md +414 -0
- package/.claude/agents/core-agents/reviewer.md +652 -0
- package/.claude/agents/core-agents/task-coordinator.md +400 -0
- package/.claude/agents/core-agents/tester.md +912 -0
- package/.claude/agents/development/backend/dev-backend-api.md +418 -23
- package/.claude/agents/devops/devops-engineer.md +240 -433
- package/.claude/agents/documentation/api-docs/docs-api-openapi.md +350 -11
- package/.claude/agents/examples/blocking-coordinator-example.md +388 -0
- package/.claude/agents/frontend/interaction-tester.md +334 -17
- package/.claude/agents/frontend/react-frontend-engineer.md +255 -2
- package/.claude/agents/frontend/state-architect.md +235 -9
- package/.claude/agents/frontend/ui-designer.md +261 -132
- package/.claude/agents/goal/goal-planner.md +803 -52
- package/.claude/agents/planning-team/api-designer-persona.md +736 -0
- package/.claude/agents/planning-team/security-architect-persona.md +643 -0
- package/.claude/agents/planning-team/system-architect-persona.md +585 -0
- package/.claude/agents/product-owner-team/accessibility-advocate-persona.md +796 -0
- package/.claude/agents/product-owner-team/cto-agent.md +473 -0
- package/.claude/agents/product-owner-team/power-user-persona.md +590 -0
- package/.claude/agents/product-owner-team/product-owner-agent.md +806 -0
- package/.claude/agents/security/security-specialist.md +515 -13
- package/.claude/agents/sparc/architecture.md +237 -1
- package/.claude/agents/sparc/pseudocode.md +237 -1
- package/.claude/agents/sparc/refinement.md +244 -1
- package/.claude/agents/sparc/specification.md +282 -21
- package/.claude/agents/specialized/code-booster.md +826 -0
- package/.claude/agents/specialized/mobile/mobile-dev.md +560 -0
- package/.claude/agents/specialized/mobile/spec-mobile-react-native.md +33 -1
- package/.claude/agents/swarm/adaptive-coordinator-enhanced.md +485 -746
- package/.claude/agents/swarm/adaptive-coordinator.md +269 -37
- package/.claude/agents/swarm/blocking-coordinator-example.md +456 -0
- package/.claude/agents/swarm/hierarchical-coordinator.md +324 -60
- package/.claude/agents/swarm/mesh-coordinator.md +774 -324
- package/.claude/agents/swarm/test-coordinator.md +123 -74
- package/.claude/agents/testing/e2e/playwright-agent.md +32 -0
- package/.claude/agents/testing/interaction-tester.md +525 -0
- package/.claude/agents/testing/playwright-tester.md +405 -0
- package/.claude/agents/testing/production-validator.md +644 -0
- package/.claude/agents/testing/tdd-london-swarm.md +659 -0
- package/.claude/agents/testing/unit/tdd-london-swarm.md +27 -0
- package/.claude/agents/testing/validation/production-validator.md +390 -1
- package/.claude/agents-ignore/mesh-coordinator-backup.md +435 -0
- package/.claude/commands/cfn-loop-document.md +441 -0
- package/.claude/commands/github-commit.md +289 -0
- package/.claude-flow-novice/.claude/agents/CLAUDE.md +669 -51
- package/.claude-flow-novice/.claude/agents/agent-principles/agent-type-guidelines.md +137 -0
- package/.claude-flow-novice/.claude/agents/agent-principles/format-selection.md +20 -0
- package/.claude-flow-novice/.claude/agents/agent-principles/prompt-engineering.md +165 -35
- package/.claude-flow-novice/.claude/agents/agent-principles/quality-metrics.md +83 -2
- package/.claude-flow-novice/.claude/agents/analysis/code-analyzer.md +722 -192
- package/.claude-flow-novice/.claude/agents/analysis/code-review/analyze-code-quality.md +33 -3
- package/.claude-flow-novice/.claude/agents/analysis/perf-analyzer.md +812 -0
- package/.claude-flow-novice/.claude/agents/architecture/system-architect.md +25 -11
- package/.claude-flow-novice/.claude/agents/cfn-loop/product-owner.md +458 -2
- package/.claude-flow-novice/.claude/agents/code-booster.md +13 -2
- package/.claude-flow-novice/.claude/agents/consensus/byzantine-coordinator.md +259 -6
- package/.claude-flow-novice/.claude/agents/consensus/consensus-builder.md +135 -2
- package/.claude-flow-novice/.claude/agents/consensus/crdt-synchronizer.md +307 -771
- package/.claude-flow-novice/.claude/agents/consensus/gossip-coordinator.md +227 -2
- package/.claude-flow-novice/.claude/agents/consensus/performance-benchmarker.md +385 -704
- package/.claude-flow-novice/.claude/agents/consensus/quorum-manager.md +241 -749
- package/.claude-flow-novice/.claude/agents/consensus/raft-manager.md +195 -2
- package/.claude-flow-novice/.claude/agents/consensus/security-manager.md +461 -518
- package/.claude-flow-novice/.claude/agents/core-agents/analyst.md +560 -0
- package/.claude-flow-novice/.claude/agents/core-agents/architect.md +578 -0
- package/.claude-flow-novice/.claude/agents/core-agents/base-template-generator.md +137 -0
- package/.claude-flow-novice/.claude/agents/core-agents/coder.md +409 -0
- package/.claude-flow-novice/.claude/agents/core-agents/coordinator.md +1429 -0
- package/.claude-flow-novice/.claude/agents/core-agents/planner.md +343 -0
- package/.claude-flow-novice/.claude/agents/core-agents/researcher.md +414 -0
- package/.claude-flow-novice/.claude/agents/core-agents/reviewer.md +652 -0
- package/.claude-flow-novice/.claude/agents/core-agents/task-coordinator.md +400 -0
- package/.claude-flow-novice/.claude/agents/core-agents/tester.md +912 -0
- package/.claude-flow-novice/.claude/agents/development/backend/dev-backend-api.md +418 -23
- package/.claude-flow-novice/.claude/agents/devops/devops-engineer.md +240 -433
- package/.claude-flow-novice/.claude/agents/documentation/api-docs/docs-api-openapi.md +350 -11
- package/.claude-flow-novice/.claude/agents/examples/blocking-coordinator-example.md +388 -0
- package/.claude-flow-novice/.claude/agents/frontend/interaction-tester.md +334 -17
- package/.claude-flow-novice/.claude/agents/frontend/react-frontend-engineer.md +255 -2
- package/.claude-flow-novice/.claude/agents/frontend/state-architect.md +235 -9
- package/.claude-flow-novice/.claude/agents/frontend/ui-designer.md +261 -132
- package/.claude-flow-novice/.claude/agents/goal/goal-planner.md +803 -52
- package/.claude-flow-novice/.claude/agents/planning-team/api-designer-persona.md +736 -0
- package/.claude-flow-novice/.claude/agents/planning-team/security-architect-persona.md +643 -0
- package/.claude-flow-novice/.claude/agents/planning-team/system-architect-persona.md +585 -0
- package/.claude-flow-novice/.claude/agents/predesign-negotiation/accessibility-advocate-persona.md +796 -0
- package/.claude-flow-novice/.claude/agents/predesign-negotiation/cto-agent.md +473 -0
- package/.claude-flow-novice/.claude/agents/predesign-negotiation/power-user-persona.md +590 -0
- package/.claude-flow-novice/.claude/agents/predesign-negotiation/product-owner-agent.md +806 -0
- package/.claude-flow-novice/.claude/agents/product-owner-team/accessibility-advocate-persona.md +796 -0
- package/.claude-flow-novice/.claude/agents/product-owner-team/cto-agent.md +473 -0
- package/.claude-flow-novice/.claude/agents/product-owner-team/power-user-persona.md +590 -0
- package/.claude-flow-novice/.claude/agents/product-owner-team/product-owner-agent.md +806 -0
- package/.claude-flow-novice/.claude/agents/security/security-specialist.md +515 -13
- package/.claude-flow-novice/.claude/agents/sparc/architecture.md +237 -1
- package/.claude-flow-novice/.claude/agents/sparc/pseudocode.md +237 -1
- package/.claude-flow-novice/.claude/agents/sparc/refinement.md +244 -1
- package/.claude-flow-novice/.claude/agents/sparc/specification.md +282 -21
- package/.claude-flow-novice/.claude/agents/specialized/code-booster.md +826 -0
- package/.claude-flow-novice/.claude/agents/specialized/mobile/mobile-dev.md +560 -0
- package/.claude-flow-novice/.claude/agents/specialized/mobile/spec-mobile-react-native.md +33 -1
- package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator-enhanced.md +485 -746
- package/.claude-flow-novice/.claude/agents/swarm/adaptive-coordinator.md +269 -37
- package/.claude-flow-novice/.claude/agents/swarm/blocking-coordinator-example.md +456 -0
- package/.claude-flow-novice/.claude/agents/swarm/hierarchical-coordinator.md +324 -60
- package/.claude-flow-novice/.claude/agents/swarm/mesh-coordinator.md +774 -324
- package/.claude-flow-novice/.claude/agents/swarm/test-coordinator.md +123 -74
- package/.claude-flow-novice/.claude/agents/testing/e2e/playwright-agent.md +32 -0
- package/.claude-flow-novice/.claude/agents/testing/interaction-tester.md +525 -0
- package/.claude-flow-novice/.claude/agents/testing/playwright-tester.md +405 -0
- package/.claude-flow-novice/.claude/agents/testing/production-validator.md +644 -0
- package/.claude-flow-novice/.claude/agents/testing/tdd-london-swarm.md +659 -0
- package/.claude-flow-novice/.claude/agents/testing/unit/tdd-london-swarm.md +27 -0
- package/.claude-flow-novice/.claude/agents/testing/validation/production-validator.md +390 -1
- package/.claude-flow-novice/config/typescript/tsconfig.tsbuildinfo +1 -1
- package/.claude-flow-novice/dist/__tests__/redis/RedisHealthMonitor.test.d.ts +14 -0
- package/.claude-flow-novice/dist/agents/heartbeat-manager.d.ts +73 -0
- package/.claude-flow-novice/dist/agents/lifecycle-cleanup-enhanced.d.ts +190 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/agent-lifecycle-sqlite.test.d.ts +17 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/blocking-coordination-audit.test.d.ts +16 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/blocking-coordination-signals.test.d.ts +14 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/byzantine-consensus-adapter.test.d.ts +14 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/byzantine-performance.test.d.ts +17 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/cfn-loop-byzantine-integration.test.d.ts +15 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/cfn-loop-e2e.test.d.ts +15 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/cfn-loop-memory-manager.test.d.ts +9 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/cleanup-integration.test.d.ts +21 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/cleanup-performance-validation.test.d.ts +13 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/coordinator-timeout-handler.test.d.ts +14 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/dead-coordinator-detection.test.d.ts +15 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/doc-code-examples-validator.d.ts +35 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/doc-executable-examples.test.d.ts +10 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/extended-timeout-testing.test.d.ts +24 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/heartbeat-warning-system.test.d.ts +21 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/redis-health-monitor.test.d.ts +22 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/signal-ack-protocol.test.d.ts +21 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/sqlite-memory-manager.test.d.ts +19 -0
- package/.claude-flow-novice/dist/cfn-loop/__tests__/test-utilities.d.ts +133 -0
- package/.claude-flow-novice/dist/cfn-loop/agent-lifecycle-sqlite.d.ts +143 -0
- package/.claude-flow-novice/dist/cfn-loop/blocking-coordination-signals.d.ts +178 -0
- package/.claude-flow-novice/dist/cfn-loop/blocking-coordination.d.ts +268 -0
- package/.claude-flow-novice/dist/cfn-loop/byzantine-consensus-adapter.d.ts +193 -0
- package/.claude-flow-novice/dist/cfn-loop/cfn-loop-memory-manager.d.ts +221 -0
- package/.claude-flow-novice/dist/cfn-loop/cfn-loop-orchestrator.d.ts +193 -1
- package/.claude-flow-novice/dist/cfn-loop/checkpoint-serializer.d.ts +113 -0
- package/.claude-flow-novice/dist/cfn-loop/circuit-breaker.d.ts +8 -2
- package/.claude-flow-novice/dist/cfn-loop/conflict-resolver.d.ts +221 -0
- package/.claude-flow-novice/dist/cfn-loop/consensus/enterprise-planning-consensus.d.ts +61 -0
- package/.claude-flow-novice/dist/cfn-loop/consensus/mvp-consensus.d.ts +33 -0
- package/.claude-flow-novice/dist/cfn-loop/coordination-validator.d.ts +121 -0
- package/.claude-flow-novice/dist/cfn-loop/coordinator-timeout-handler.d.ts +195 -0
- package/.claude-flow-novice/dist/cfn-loop/crash-detector.d.ts +138 -0
- package/.claude-flow-novice/dist/cfn-loop/epic-report-generator.d.ts +136 -0
- package/.claude-flow-novice/dist/cfn-loop/git-checkpoint-integration.example.d.ts +13 -0
- package/.claude-flow-novice/dist/cfn-loop/git-checkpoint-manager.d.ts +165 -0
- package/.claude-flow-novice/dist/cfn-loop/heartbeat-integration-example.d.ts +16 -0
- package/.claude-flow-novice/dist/cfn-loop/heartbeat-warning-system.d.ts +202 -0
- package/.claude-flow-novice/dist/cfn-loop/meta-coordinator.d.ts +208 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/__tests__/mode-selection.test.d.ts +9 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/enterprise-mode.d.ts +37 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/index.d.ts +111 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/mvp-mode.d.ts +31 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/standard-mode.d.ts +31 -0
- package/.claude-flow-novice/dist/cfn-loop/modes/types.d.ts +135 -0
- package/.claude-flow-novice/dist/cfn-loop/product-owner/enterprise-owner-team.d.ts +50 -0
- package/.claude-flow-novice/dist/cfn-loop/product-owner/mvp-owner.d.ts +31 -0
- package/.claude-flow-novice/dist/cfn-loop/recovery-engine.d.ts +183 -0
- package/.claude-flow-novice/dist/cfn-loop/redis-health-integration-example.d.ts +13 -0
- package/.claude-flow-novice/dist/cfn-loop/redis-health-monitor.d.ts +164 -0
- package/.claude-flow-novice/dist/cfn-loop/redis-pubsub-helpers.d.ts +230 -0
- package/.claude-flow-novice/dist/cfn-loop/sprint-coordinator-enhanced.d.ts +199 -0
- package/.claude-flow-novice/dist/cfn-loop/state-checkpoint-manager.d.ts +198 -0
- package/.claude-flow-novice/dist/cfn-loop/test-aggregator.d.ts +205 -0
- package/.claude-flow-novice/dist/cfn-loop/test-lock-coordinator.d.ts +176 -0
- package/.claude-flow-novice/dist/cfn-loop/test-product-owner-decision.d.ts +19 -0
- package/.claude-flow-novice/dist/cfn-loop/types.d.ts +174 -0
- package/.claude-flow-novice/dist/cfn-loop/validator-methods-replacement.d.ts +68 -0
- package/.claude-flow-novice/dist/cli/cleanup-orphans.d.ts +54 -0
- package/.claude-flow-novice/dist/cli/commands/agent-lifecycle.d.ts +226 -0
- package/.claude-flow-novice/dist/cli/commands/cfn-loop-parallel.d.ts +21 -0
- package/.claude-flow-novice/dist/cli/commands/recovery-resume.d.ts +33 -0
- package/.claude-flow-novice/dist/cli/commands/recovery-status.d.ts +57 -0
- package/.claude-flow-novice/dist/cli/commands/recovery.d.ts +88 -0
- package/.claude-flow-novice/dist/cli/commands/validate-coordination.d.ts +14 -0
- package/.claude-flow-novice/dist/cli/node-compat.d.ts +1 -1
- package/.claude-flow-novice/dist/cli/simple-commands/hive-mind/queen.d.ts +3 -3
- package/.claude-flow-novice/dist/cli/utils/interactive-detector.d.ts +1 -1
- package/.claude-flow-novice/dist/cli/utils/redis-client.d.ts +1 -5
- package/.claude-flow-novice/dist/consensus/byzantine-coordinator.d.ts +314 -0
- package/.claude-flow-novice/dist/constants/agent-types.d.ts +2 -2
- package/.claude-flow-novice/dist/coordination/hive-orchestrator.d.ts +1 -1
- package/.claude-flow-novice/dist/coordination/validation-schemas.d.ts +12 -12
- package/.claude-flow-novice/dist/hooks/index.d.ts +1 -1
- package/.claude-flow-novice/dist/hooks/useSwarmRealtimeData.d.ts +11 -11
- package/.claude-flow-novice/dist/memory/advanced-memory-manager.d.ts +1 -0
- package/.claude-flow-novice/dist/memory/backends/sqlite.d.ts +1 -0
- package/.claude-flow-novice/dist/memory/distributed-memory.d.ts +1 -0
- package/.claude-flow-novice/dist/memory/secret-detector.d.ts +131 -0
- package/.claude-flow-novice/dist/memory/sqlite-enhanced-backend.d.ts +1 -0
- package/.claude-flow-novice/dist/monitoring/memory-leak-dashboard-widget.d.ts +194 -0
- package/.claude-flow-novice/dist/providers/api-key-rotation-example.d.ts +54 -0
- package/.claude-flow-novice/dist/providers/api-key-rotator.d.ts +166 -0
- package/.claude-flow-novice/dist/providers/rate-limit-detector.d.ts +60 -0
- package/.claude-flow-novice/dist/redis/RedisHealthMonitor.d.ts +162 -0
- package/.claude-flow-novice/dist/redis/health-integration-example.d.ts +86 -0
- package/.claude-flow-novice/dist/services/swarm-memory-manager.d.ts +1 -0
- package/.claude-flow-novice/dist/src/agents/heartbeat-manager.js +144 -0
- package/.claude-flow-novice/dist/src/agents/lifecycle-cleanup-enhanced.js +514 -0
- package/.claude-flow-novice/dist/src/automation/test-pipeline/PipelineValidator.js +1 -1
- package/.claude-flow-novice/dist/src/automation/test-pipeline/SwarmTestCoordinator.js +1 -1
- package/.claude-flow-novice/dist/src/cfn-loop/agent-lifecycle-sqlite.js +385 -0
- package/.claude-flow-novice/dist/src/cfn-loop/blocking-coordination-signals.js +470 -0
- package/.claude-flow-novice/dist/src/cfn-loop/blocking-coordination.js +768 -0
- package/.claude-flow-novice/dist/src/cfn-loop/byzantine-consensus-adapter.js +548 -0
- package/.claude-flow-novice/dist/src/cfn-loop/cfn-loop-memory-manager.js +589 -0
- package/.claude-flow-novice/dist/src/cfn-loop/cfn-loop-orchestrator.js +1059 -21
- package/.claude-flow-novice/dist/src/cfn-loop/checkpoint-serializer.js +308 -0
- package/.claude-flow-novice/dist/src/cfn-loop/circuit-breaker.js +34 -9
- package/.claude-flow-novice/dist/src/cfn-loop/conflict-resolver.js +525 -0
- package/.claude-flow-novice/dist/src/cfn-loop/consensus/enterprise-planning-consensus.js +403 -0
- package/.claude-flow-novice/dist/src/cfn-loop/consensus/mvp-consensus.js +235 -0
- package/.claude-flow-novice/dist/src/cfn-loop/coordination-validator.js +304 -0
- package/.claude-flow-novice/dist/src/cfn-loop/coordinator-timeout-handler.js +600 -0
- package/.claude-flow-novice/dist/src/cfn-loop/crash-detector.js +362 -0
- package/.claude-flow-novice/dist/src/cfn-loop/epic-report-generator.js +283 -0
- package/.claude-flow-novice/dist/src/cfn-loop/git-checkpoint-integration.example.js +161 -0
- package/.claude-flow-novice/dist/src/cfn-loop/git-checkpoint-manager.js +486 -0
- package/.claude-flow-novice/dist/src/cfn-loop/heartbeat-integration-example.js +187 -0
- package/.claude-flow-novice/dist/src/cfn-loop/heartbeat-warning-system.js +492 -0
- package/.claude-flow-novice/dist/src/cfn-loop/meta-coordinator.js +538 -0
- package/.claude-flow-novice/dist/src/cfn-loop/modes/enterprise-mode.js +132 -0
- package/.claude-flow-novice/dist/src/cfn-loop/modes/index.js +191 -0
- package/.claude-flow-novice/dist/src/cfn-loop/modes/mvp-mode.js +79 -0
- package/.claude-flow-novice/dist/src/cfn-loop/modes/standard-mode.js +81 -0
- package/.claude-flow-novice/dist/src/cfn-loop/modes/types.js +41 -0
- package/.claude-flow-novice/dist/src/cfn-loop/product-owner/enterprise-owner-team.js +380 -0
- package/.claude-flow-novice/dist/src/cfn-loop/product-owner/mvp-owner.js +170 -0
- package/.claude-flow-novice/dist/src/cfn-loop/recovery-engine.js +546 -0
- package/.claude-flow-novice/dist/src/cfn-loop/redis-health-integration-example.js +215 -0
- package/.claude-flow-novice/dist/src/cfn-loop/redis-health-monitor.js +414 -0
- package/.claude-flow-novice/dist/src/cfn-loop/redis-pubsub-helpers.js +463 -0
- package/.claude-flow-novice/dist/src/cfn-loop/sprint-coordinator-enhanced.js +466 -0
- package/.claude-flow-novice/dist/src/cfn-loop/state-checkpoint-manager.js +402 -0
- package/.claude-flow-novice/dist/src/cfn-loop/test-aggregator.js +476 -0
- package/.claude-flow-novice/dist/src/cfn-loop/test-lock-coordinator.js +446 -0
- package/.claude-flow-novice/dist/src/cfn-loop/test-product-owner-decision.js +69 -0
- package/.claude-flow-novice/dist/src/cfn-loop/types.js +30 -0
- package/.claude-flow-novice/dist/src/cfn-loop/validator-methods-replacement.js +362 -0
- package/.claude-flow-novice/dist/src/cli/cleanup-orphans.js +246 -0
- package/.claude-flow-novice/dist/src/cli/commands/agent-lifecycle.js +1058 -0
- package/.claude-flow-novice/dist/src/cli/commands/cfn-loop-parallel.js +436 -0
- package/.claude-flow-novice/dist/src/cli/commands/index.js +86 -0
- package/.claude-flow-novice/dist/src/cli/commands/parse-epic.js +64 -2
- package/.claude-flow-novice/dist/src/cli/commands/recovery-resume.js +369 -0
- package/.claude-flow-novice/dist/src/cli/commands/recovery-status.js +265 -0
- package/.claude-flow-novice/dist/src/cli/commands/recovery.js +546 -0
- package/.claude-flow-novice/dist/src/cli/commands/validate-coordination.js +211 -0
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE-backup-pre-enterprise-loop.md +735 -0
- package/.claude-flow-novice/dist/src/cli/simple-commands/init/templates/CLAUDE.md +176 -326
- package/.claude-flow-novice/dist/src/coordination/shared/transparency/transparency-system.js +1 -1
- package/.claude-flow-novice/dist/src/memory/advanced-memory-manager.js +17 -2
- package/.claude-flow-novice/dist/src/memory/backends/sqlite.js +23 -1
- package/.claude-flow-novice/dist/src/memory/distributed-memory.js +18 -3
- package/.claude-flow-novice/dist/src/memory/secret-detector.js +253 -0
- package/.claude-flow-novice/dist/src/memory/sqlite-enhanced-backend.js +20 -1
- package/.claude-flow-novice/dist/src/monitoring/memory-leak-dashboard-widget.js +421 -0
- package/.claude-flow-novice/dist/src/observability/prometheus-metrics.d.js +8 -0
- package/.claude-flow-novice/dist/src/providers/api-key-rotation-example.js +165 -0
- package/.claude-flow-novice/dist/src/providers/api-key-rotator.js +412 -0
- package/.claude-flow-novice/dist/src/providers/rate-limit-detector.js +193 -0
- package/.claude-flow-novice/dist/src/redis/RedisHealthMonitor.js +429 -0
- package/.claude-flow-novice/dist/src/redis/health-integration-example.js +353 -0
- package/.claude-flow-novice/dist/src/services/swarm-memory-manager.js +72 -42
- package/.claude-flow-novice/dist/src/sqlite/ACLEnforcer.cjs +928 -0
- package/.claude-flow-novice/dist/src/sqlite/AgentRegistry.cjs +702 -0
- package/.claude-flow-novice/dist/src/sqlite/AgentRegistry.js +702 -0
- package/.claude-flow-novice/dist/src/sqlite/EncryptionKeyManager.cjs +754 -0
- package/.claude-flow-novice/dist/src/sqlite/EncryptionKeyManager.js +754 -0
- package/.claude-flow-novice/dist/src/sqlite/MemoryStoreAdapter.cjs +571 -0
- package/.claude-flow-novice/dist/src/sqlite/MemoryStoreAdapter.js +571 -0
- package/.claude-flow-novice/dist/src/sqlite/MultiLayerCache.cjs +640 -0
- package/.claude-flow-novice/dist/src/sqlite/MultiLayerCache.js +640 -0
- package/.claude-flow-novice/dist/src/sqlite/RedisCoordinator.cjs +636 -0
- package/.claude-flow-novice/dist/src/sqlite/RedisCoordinator.js +636 -0
- package/.claude-flow-novice/dist/src/sqlite/SwarmMemoryManager.cjs +750 -0
- package/.claude-flow-novice/dist/src/sqlite/SwarmMemoryManager.js +750 -0
- package/.claude-flow-novice/dist/src/sqlite/index.cjs +620 -0
- package/.claude-flow-novice/dist/src/sqlite/index.js +620 -0
- package/.claude-flow-novice/dist/src/sqlite/performance-benchmarks.cjs +839 -0
- package/.claude-flow-novice/dist/src/sqlite/performance-benchmarks.js +839 -0
- package/.claude-flow-novice/dist/src/testing/performance/PerformanceTestRunner.js +1 -1
- package/.claude-flow-novice/dist/src/wasm-regex-engine/pkg/wasm_regex_engine.d.js +11 -0
- package/.claude-flow-novice/dist/src/wasm-regex-engine/pkg/wasm_regex_engine_bg.wasm.d.js +28 -0
- package/.claude-flow-novice/dist/web/api/routes/parallel-status.d.ts +105 -0
- package/.claude-flow-novice/dist/web/dashboard/hooks/useWebSocket.d.ts +4 -4
- package/.claude-flow-novice/tsconfig.tsbuildinfo +1 -1
- package/AUTO_SETUP.md +271 -0
- package/CLAUDE.md +176 -326
- package/README.md +127 -30
- package/config/.env.example +17 -0
- package/config/cfn-loop/enterprise-criteria.json +207 -0
- package/config/cfn-loop/instructions/enterprise-instructions.md +506 -0
- package/config/cfn-loop/instructions/mvp-instructions.md +420 -0
- package/config/cfn-loop/instructions/standard-instructions.md +497 -0
- package/config/cfn-loop/mvp-criteria.json +133 -0
- package/config/docker/DEPLOYMENT_VALIDATION_RESULTS.md +1 -1
- package/config/docker/QUICK_START.txt +7 -5
- package/config/docker/STABILITY_TEST_README.md +10 -10
- package/config/hooks/AGENT_TEMPLATE_VALIDATOR_COMPLETION.md +440 -0
- package/config/hooks/BLOCKING_COORDINATION_VALIDATOR_IMPLEMENTATION_REPORT.md +559 -0
- package/config/hooks/BLOCKING_COORDINATION_VALIDATOR_README.md +467 -0
- package/config/hooks/CFN_LOOP_MEMORY_VALIDATOR_IMPLEMENTATION.md +343 -0
- package/config/hooks/COVERAGE_VALIDATOR_QUICK_START.md +218 -0
- package/config/hooks/POST_TEST_COVERAGE_README.md +657 -0
- package/config/hooks/README-AGENT-TEMPLATE-VALIDATOR.md +464 -0
- package/config/hooks/README-CFN-LOOP-MEMORY-VALIDATOR.md +442 -0
- package/config/hooks/TEST_COVERAGE_VALIDATOR_COMPLETION.md +497 -0
- package/config/hooks/WASM_REGEX_ENGINE.md +210 -0
- package/config/hooks/coverage.config.json +40 -0
- package/config/hooks/hook-manager.cjs +47 -0
- package/config/hooks/markdown-validator.js +202 -0
- package/config/hooks/post-edit-agent-template.js +607 -0
- package/config/hooks/post-edit-blocking-coordination.js +748 -0
- package/config/hooks/post-edit-cfn-loop-memory.cjs +503 -0
- package/config/hooks/post-edit-pipeline.js +290 -145
- package/config/hooks/post-test-coverage.js +981 -0
- package/config/hooks/pre-commit-db-scan +119 -0
- package/config/hooks/pre-edit-security.js +33 -6
- package/config/hooks/pre-tool-validation.js +60 -1
- package/config/hooks/safety-validator.js +236 -21
- package/config/hooks/safety-validator.js.backup +1323 -0
- package/config/hooks/validators/CWEValidator.js +152 -0
- package/config/hooks/validators/ComplianceValidator.js +187 -0
- package/config/hooks/validators/DependencyScanner.js +162 -0
- package/config/hooks/validators/InputSanitizer.js +134 -0
- package/config/hooks/validators/OWASPValidator.js +197 -0
- package/config/hooks/validators/SecurityPatternScanner.js +318 -0
- package/config/jest/jest.config.js +12 -1
- package/docs/PRE_COMMIT_HOOK.md +294 -0
- package/docs/README.md +130 -153
- package/docs/TEST_INFRASTRUCTURE.md +381 -0
- package/docs/agent-lifecycle-hooks.md +860 -0
- package/docs/api/FUNCTION_CATALOG.md +584 -0
- package/docs/api/ROUTING_QUICK_REFERENCE.md +117 -0
- package/docs/api/VALIDATION_QUICK_REFERENCE.md +172 -0
- package/docs/api/blocking-coordination-api.md +1451 -0
- package/docs/architecture/MULTI_SWARM_COORDINATION_README.md +620 -0
- package/docs/architecture/README_REALTIME_COMMUNICATION.md +463 -0
- package/docs/architecture/REALTIME_COMMUNICATION_ANALYSIS.md +321 -0
- package/docs/architecture/WASM_ARCHITECTURE_SUMMARY.md +429 -0
- package/docs/architecture/WASM_INTEGRATION_ARCHITECTURE.md +1330 -0
- package/docs/archive/2025-10-10-architecture/deprecated-implementations/BLOCKING_COORDINATION_VALIDATION_FINAL.md +334 -0
- package/docs/archive/2025-10-10-architecture/deprecated-implementations/blocking-coordination-pattern.md +484 -0
- package/docs/archive/2025-10-10-architecture/deprecated-implementations/production-blocking-coordination-plan.md +764 -0
- package/docs/archive/2025-10-10-architecture/deprecated-implementations/revised-production-blocking-plan.md +614 -0
- package/docs/archive/2025-10-10-architecture/implementation-guides/WASM_IMPLEMENTATION_GUIDE.md +1011 -0
- package/docs/archive/2025-10-10-architecture/implementation-guides/WASM_ROLLOUT_PLAN.md +701 -0
- package/docs/archive/2025-10-10-architecture/implementation-guides/agent-lifecycle-implementation-plan.md +1428 -0
- package/docs/archive/2025-10-10-architecture/other-designs/CORRECTED-task-tool-constraints.md +366 -0
- package/docs/archive/2025-10-10-architecture/other-designs/claude-code-task-tool-constraints.md +401 -0
- package/docs/archive/2025-10-10-architecture/other-designs/cleanup-architecture-explanation.md +423 -0
- package/docs/archive/2025-10-10-guides/setup-guides/CONTRIBUTING.md +136 -0
- package/docs/archive/2025-10-10-guides/setup-guides/DEVELOPMENT_SETUP.md +486 -0
- package/docs/archive/2025-10-10-guides/setup-guides/EXAMPLES.md +793 -0
- package/docs/archive/2025-10-10-guides/setup-guides/INSTALLATION.md +608 -0
- package/docs/archive/2025-10-10-guides/setup-guides/QUICK_START_INSTALLATION.md +521 -0
- package/docs/archive/2025-10-10-guides/setup-guides/README.md +162 -0
- package/docs/archive/2025-10-10-guides/setup-guides/TROUBLESHOOTING.md +1388 -0
- package/docs/archive/2025-10-10-operations/ARCHIVE_MIGRATION_PLAN.md +214 -0
- package/docs/archive/2025-10-10-performance/wasm-deliverables/WASM_DELIVERABLES.md +421 -0
- package/docs/archive/ARCHIVAL_EXECUTION_REPORT_2025-10-10.md +219 -0
- package/docs/archive/HTTP_POLLING_FALLBACK.md +283 -0
- package/docs/archive/reference-historical/BACKUP_MANIFEST.md +32 -0
- package/docs/archive/reference-historical/README-PHASE4.md +355 -0
- package/docs/archive/reference-historical/READMEv2.md +524 -0
- package/docs/deployment/blocking-coordination-secrets.md +1445 -0
- package/docs/implementation/SQLITE_INTEGRATION_IMPLEMENTATION.md +663 -0
- package/docs/integration/cfn-loop-examples.md +1107 -0
- package/docs/observability/prometheus-setup.md +455 -0
- package/docs/operations/OPERATIONS_FOLDER_REVIEW_REPORT.json +135 -0
- package/docs/operations/failure-recovery-playbook.md +877 -0
- package/docs/operations/monitoring-runbook.md +880 -0
- package/docs/patterns/blocking-coordination-pattern.md +642 -0
- package/docs/reference/CHANGELOG-POST-EDIT-PIPELINE.md +370 -0
- package/docs/reference/MANUAL_NPM_PUBLICATION_GUIDE.md +248 -0
- package/docs/security/SEC-002-race-condition-fix.md +300 -0
- package/docs/security/SEC-003-JSON-VALIDATION.md +215 -0
- package/docs/testing/chaos-engineering.md +524 -0
- package/docs/training/best-practices.md +1241 -0
- package/docs/training/faq.md +1483 -0
- package/docs/training/interactive-tutorial.md +966 -0
- package/docs/training/troubleshooting-guide.md +1279 -0
- package/docs/training/video-walkthrough-script.md +675 -0
- package/examples/demonstrations/phase5-demonstration.cjs +227 -0
- package/examples/rest-api-simple/sparc-implementation-roadmap.md +1 -1
- package/examples/rest-api-simple/sparc-implementation-roadmap.md.backup-1760135091708 +190 -0
- package/examples/templates/basic-swarm/CLAUDE.md +464 -0
- package/examples/templates/custom-agent/CLAUDE.md +299 -0
- package/examples/templates/custom-agent/package.json +26 -0
- package/examples/templates/event-bus/package.json +28 -0
- package/examples/templates/fleet-manager/CLAUDE.md +134 -0
- package/examples/templates/fleet-manager/package.json +28 -0
- package/package.json +60 -18
- package/readme/additional-commands.md +365 -2
- package/readme/cfn-loop-modes.md +527 -0
- package/readme/logs-cli-redis.md +82 -14
- package/readme/logs-documentation-index.md +8 -0
- package/readme/logs-features.md +188 -24
- package/readme/logs-slash-commands.md +35 -11
- package/scripts/CLEANUP_OPTIMIZATION_REPORT.json +312 -0
- package/scripts/CLEANUP_PERFORMANCE_OPTIMIZATION.md +387 -0
- package/scripts/CLEANUP_QUICK_START.md +268 -0
- package/scripts/CLEANUP_TEST_RESULTS.md +205 -0
- package/scripts/auto-setup.js +332 -0
- package/scripts/cleanup-blocking-coordination.sh +420 -0
- package/scripts/collect-build-metrics.js +65 -0
- package/scripts/demo/README.md +79 -0
- package/scripts/demo/autoscaling-demo-simplified.js +963 -0
- package/scripts/demo/comprehensive-dashboard-test.js +693 -0
- package/scripts/demo/confidence-log.js +87 -0
- package/scripts/demo/confidence-report.js +82 -0
- package/scripts/demo/demo-multi-swarm-coordination.js +325 -0
- package/scripts/demo/demo-production-deployment.js +399 -0
- package/scripts/demo/demo-visualization-system.js +149 -0
- package/scripts/demo/performance-analysis.cjs +71 -0
- package/scripts/demo/performance-analysis.js +71 -0
- package/scripts/demo/test-autoscaling-demo.js +314 -0
- package/scripts/dev/demo-phase3-compliance.js +2 -2
- package/scripts/ecosystem.config.cjs +90 -0
- package/scripts/hook-wrapper.sh +54 -0
- package/scripts/install-pre-commit-hook.sh +127 -0
- package/scripts/legacy/performance-test-runner.js +7 -7
- package/scripts/migration/QUICK-START.md +189 -0
- package/scripts/migration/QUICK-START.md.backup-1760135091363 +189 -0
- package/scripts/migration/README.md +30 -0
- package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md +500 -0
- package/scripts/migration/TASK-1.3.2-COMPLETION-REPORT.md.backup-1760135091348 +500 -0
- package/scripts/migration/UPDATE-PATHS-README.md +464 -0
- package/scripts/migration/UPDATE-PATHS-README.md.backup-1760135091337 +464 -0
- package/scripts/migration/example-patterns.json +19 -0
- package/scripts/migration/reorganize-workspace.js +504 -0
- package/scripts/migration/test-update-paths.js +359 -0
- package/scripts/migration/update-paths.js +664 -0
- package/scripts/migration/validate-migration.js +647 -0
- package/scripts/monitoring/README.md +6 -6
- package/scripts/monitoring/analyze-resources.sh +1 -1
- package/scripts/monitoring/dynamic-monitor.sh +4 -4
- package/scripts/monitoring/test-monitor-quick.sh +1 -1
- package/scripts/performance-test-runner.js +7 -7
- package/scripts/redis-lua/cleanup-blocking-coordination.lua +198 -0
- package/scripts/sync-agents.js +290 -0
- package/scripts/test/NEW_STABILITY_TEST_GUIDE.md +13 -8
- package/scripts/test/quick-multilingual-demo.js +2 -2
- package/scripts/test-cleanup-performance.sh +416 -0
- package/scripts/test-runner.cjs +154 -0
- package/scripts/validate-agent-hooks.js +506 -0
- package/scripts/validation/README.md +33 -0
- package/scripts/validation/acl-security-validation.cjs +214 -0
- package/scripts/validation/acl-security-validation.js +402 -0
- package/scripts/validation/byzantine-verification.js +407 -0
- package/scripts/validation/final-phase-2-consensus.cjs +219 -0
- package/scripts/validation/final-security-validation.js +791 -0
- package/scripts/validation/final-wasm-validation.cjs +840 -0
- package/scripts/validation/integration-test-analysis.js +105 -0
- package/scripts/validation/phase-0-comprehensive-validation.js +474 -0
- package/scripts/validation/phase-0-consensus-report.js +139 -0
- package/scripts/validation/phase-0-final-report.js +112 -0
- package/scripts/validation/phase-0-redis-consensus-report.js +129 -0
- package/scripts/validation/phase-0-validation-improved.js +490 -0
- package/scripts/validation/phase-0-validation-test.js +65 -0
- package/scripts/validation/phase-1-consensus-report.cjs +342 -0
- package/scripts/validation/phase-1-consensus-validation.cjs +551 -0
- package/scripts/validation/phase-1-consensus-validation.js +551 -0
- package/scripts/validation/phase-2-consensus-report.cjs +186 -0
- package/scripts/validation/phase-2-validation.cjs +171 -0
- package/scripts/validation/phase-2-validation.js +171 -0
- package/scripts/validation/phase-4-consensus-report.js +181 -0
- package/scripts/validation/phase-4-final-validation.js +351 -0
- package/scripts/validation/phase-5-consensus-report.cjs +113 -0
- package/scripts/validation/phase-5-consensus-report.js +113 -0
- package/scripts/validation/security-analysis.js +49 -0
- package/scripts/validation/security-validation.js +492 -0
- package/scripts/validation/simple-security-validation.js +464 -0
- package/scripts/verify-installation.js +44 -14
- package/src/cli/simple-commands/init/templates/CLAUDE-backup-pre-enterprise-loop.md +735 -0
- package/src/cli/simple-commands/init/templates/CLAUDE.md +176 -326
- package/src/observability/blocking-coordination-metrics.js +161 -0
- package/src/observability/prometheus-metrics.d.ts +21 -0
- package/src/observability/prometheus-metrics.js +280 -0
- package/wiki/tutorials/beginner/04-quality-testing.md +3 -3
- package/.claude/agents/analyst.md +0 -300
- package/.claude/agents/architect.md +0 -558
- package/.claude/agents/base-template-generator.md +0 -65
- package/.claude/agents/coder.md +0 -181
- package/.claude/agents/planner.md +0 -135
- package/.claude/agents/researcher.md +0 -185
- package/.claude/agents/reviewer.md +0 -293
- package/.claude/agents/task-coordinator.md +0 -126
- package/.claude/agents/tester.md +0 -664
- package/MCP_DEPRECATION_COMPLETE.md +0 -375
- package/V2.0.0_READY_FOR_PUBLICATION.md +0 -417
- package/V2_RELEASE_SUMMARY.md +0 -568
- package/docs/DEPLOYMENT.md +0 -523
- package/docs/TROUBLESHOOTING.md +0 -1388
- package/docs/agent-token-analysis-results.json +0 -1329
- package/docs/architecture/agent-lifecycle-implementation-plan.md +0 -1428
- package/templates/custom-agent/package.json +0 -26
- package/templates/event-bus/package.json +0 -28
- package/templates/fleet-manager/package.json +0 -28
- /package/.claude/{agents → agents-ignore}/benchmarking-tests/test-agent-code-heavy.md +0 -0
- /package/.claude/{agents → agents-ignore}/benchmarking-tests/test-agent-metadata.md +0 -0
- /package/.claude/{agents → agents-ignore}/benchmarking-tests/test-agent-minimal.md +0 -0
- /package/.claude/{agents/coordinator.md → agents-ignore/coordinator-backup.md} +0 -0
- /package/.claude/{agents → agents-ignore}/data/ml/data-ml-model.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/code-review-swarm.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/github-modes.md +0 -0
- /package/.claude/{agents/templates → agents-ignore/github}/github-pr-manager.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/github-specialist.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/issue-tracker.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/multi-repo-swarm.md +0 -0
- /package/.claude/{agents/devops/ci-cd → agents-ignore/github}/ops-cicd-github.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/pr-manager.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/project-board-sync.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/release-manager.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/release-swarm.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/repo-architect.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/swarm-issue.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/swarm-pr.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/sync-coordinator.md +0 -0
- /package/.claude/{agents → agents-ignore}/github/workflow-automation.md +0 -0
- /package/.claude/{agents → agents-ignore}/neural/neural-pattern-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/neural/safla-neural.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/benchmark-suite.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/load-balancer.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/perf-analyzer.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/performance-monitor.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/resource-allocator.md +0 -0
- /package/.claude/{agents → agents-ignore}/optimization/topology-optimizer.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/consciousness-evolution-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/matrix-solver-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/nanosecond-scheduler-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/pagerank-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/phi-calculator-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/psycho-symbolic-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/sublinear.md +0 -0
- /package/.claude/{agents → agents-ignore}/sublinear/temporal-advantage-agent.md +0 -0
- /package/.claude/{agents/architecture → agents-ignore}/system-design/arch-system-design.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/automation-smart-agent.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/coordinator-swarm-init.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/implementer-sparc-coder.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/memory-coordinator.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/migration-plan.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/orchestrator-task.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/performance-analyzer.md +0 -0
- /package/.claude/{agents → agents-ignore}/templates/sparc-coordinator.md +0 -0
- /package/{.claude/agents/specialized → .claude-flow-novice/.claude/agents/agent-principles}/CODER_AGENT_GUIDELINES.md +0 -0
- /package/docs/{API.md → api/API.md} +0 -0
- /package/docs/{CONFIGURATION.md → api/CONFIGURATION.md} +0 -0
- /package/docs/{PROVIDER_ROUTING_CONFIGURATION.md → api/PROVIDER_ROUTING_CONFIGURATION.md} +0 -0
- /package/docs/{PROVIDER_ROUTING_VERIFICATION.md → api/PROVIDER_ROUTING_VERIFICATION.md} +0 -0
- /package/docs/{ROUTING_FLOW_DIAGRAM.md → api/ROUTING_FLOW_DIAGRAM.md} +0 -0
- /package/{AGENT_PERFORMANCE_GUIDELINES.md → docs/architecture/AGENT_PERFORMANCE_GUIDELINES.md} +0 -0
- /package/docs/{EVENTEMITTER_CLEANUP_PATTERN.md → architecture/EVENTEMITTER_CLEANUP_PATTERN.md} +0 -0
- /package/docs/{REDIS_COORDINATION_SYSTEM.md → architecture/REDIS_COORDINATION_SYSTEM.md} +0 -0
- /package/docs/{SYSTEM_ARCHITECTURE.md → architecture/SYSTEM_ARCHITECTURE.md} +0 -0
- /package/docs/{consensus → architecture/consensus}/QUORUM_VERIFICATION_GUIDE.md +0 -0
- /package/docs/{consensus → architecture/consensus}/README.md +0 -0
- /package/docs/{consensus → architecture/consensus}/consensus-verification-1758747665635.json +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/MIGRATION_SUMMARY.md +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/README.md +0 -0
- /package/docs/{agent-booster-architecture.md → archive/2025-10-10-architecture/agent-subdirectory/agent-booster-architecture.md} +0 -0
- /package/docs/{agent-prompt-guidelines.md → archive/2025-10-10-architecture/agent-subdirectory/agent-prompt-guidelines.md} +0 -0
- /package/docs/{agent-token-usage-analysis-report.md → archive/2025-10-10-architecture/agent-subdirectory/agent-token-usage-analysis-report.md} +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/consensus-README.md +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/dependency-tracking-examples.md +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/optimization-README.md +0 -0
- /package/docs/{agents → archive/2025-10-10-architecture/agent-subdirectory}/swarm-README.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/CONSENSUS-COMPARISON.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/ROUND-5-EXECUTIVE-SUMMARY.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/consolidated-consensus-report.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-consensus-round-2.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-3-consensus-summary.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-3-validator-1.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-3-validator-2.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-3-validator-3.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-3-validator-4.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-4-consensus-summary.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-4-validator-1.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-4-validator-2.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-4-validator-3.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-4-validator-4.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-round-5-final-consensus.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/fullstack-swarm-consensus-report.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/post-edit-consensus-round-2.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/raft-implementation-summary.md +0 -0
- /package/docs/{consensus → archive/2025-10-10-architecture/consensus-rounds}/verification-summary.md +0 -0
- /package/docs/{comprehensive-mcp-solution-architecture.md → archive/2025-10-10-architecture/deprecated-implementations/comprehensive-mcp-solution-architecture.md} +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture}/experimental/ExperimentalFeaturesArchitecture.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/frontend-specific}/frontend-agent-ecosystem-integration.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/frontend-specific}/frontend-agent-technical-decisions.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/frontend-specific}/frontend-backend-coordination-interfaces.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/frontend-specific}/react-frontend-agent-specification.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/github-specific}/github-agent-consolidation-architecture.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/github-specific}/github-architecture-diagrams.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/implementation-guides}/agent-lifecycle-implementation-guide.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/implementation-guides}/implementation-guide.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/implementation-guides}/implementation-specifications.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/implementation-guides}/integration-guide.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/implementation-guides}/performance-optimization-guide.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/old-summaries}/architecture-summary-report.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/old-summaries}/fullstack-swarm-implementation-summary.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/old-summaries}/ultra-fast-communication-summary.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/agent-discovery-registration-system.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/agent-lifecycle-management-architecture.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/architectural-decisions.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/architecture-decision-records.md +0 -0
- /package/docs/{claude-soul-implementation.md → archive/2025-10-10-architecture/other-designs/claude-soul-implementation.md} +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/file-based-cross-team-communication.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/full-stack-swarm-team-specification.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/fullstack-communication-integration.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/stage3-unified-system-architecture.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/ultra-fast-communication-bus-design.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/other-designs}/zero-latency-communication-architecture.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/dynamic-agent-spawning-architecture.md +0 -0
- /package/docs/{fleet-manager-design.md → archive/2025-10-10-architecture/specific-feature-specs/fleet-manager-design.md} +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/fleet-manager-npm-architecture.md +0 -0
- /package/docs/{help-coordinator-implementation.md → archive/2025-10-10-architecture/specific-feature-specs/help-coordinator-implementation.md} +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/high-performance-memory-store.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/intelligent-configuration-system.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/message-serialization-compression-strategy.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/priority-queue-dead-letter-design.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/swarm-message-router-extension-design.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/swarm-router-implementation-spec.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/user-preference-storage-design.md +0 -0
- /package/docs/{architecture → archive/2025-10-10-architecture/specific-feature-specs}/websocket-connection-scaling-design.md +0 -0
- /package/docs/{swarm-coordination-test-results.md → archive/2025-10-10-architecture/test-results/swarm-coordination-test-results.md} +0 -0
- /package/docs/{development → archive/2025-10-10-development}/COMPREHENSIVE_WORKFLOW_SYSTEM.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/DEVELOPMENT_WORKFLOW.md +0 -0
- /package/docs/{EXAMPLES.md → archive/2025-10-10-development/EXAMPLES.md} +0 -0
- /package/docs/{development → archive/2025-10-10-development}/SPARC.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/agent-scope-creep-prevention-guide.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/cargo-build-validator-summary.md +0 -0
- /package/docs/{development → archive/2025-10-10-development/cli-consolidation}/command-consolidation-technical-spec.md +0 -0
- /package/docs/{development → archive/2025-10-10-development/cli-consolidation}/consolidated-cli-implementation.md +0 -0
- /package/docs/{development → archive/2025-10-10-development/cli-consolidation}/consolidated-command-design.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/experimental-features-improvement-plan.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/feature-simplification-strategy.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/fullstack-swarm-fixes-round-1.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/fullstack-swarm-fixes-round-3.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/fullstack-swarm-fixes-round-4.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/fullstack-swarm-fixes-round-5.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/round-5-quick-reference.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/round-5-summary.md +0 -0
- /package/docs/{fixes → archive/2025-10-10-development/fixes}/round-5-visual-summary.md +0 -0
- /package/docs/{implementation → archive/2025-10-10-development/implementation}/configuration-system-specs.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/npm-packaging-solution.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/pair-optimization.md +0 -0
- /package/docs/{phase11-cli-integration-complete.md → archive/2025-10-10-development/phase-summaries/phase11-cli-integration-complete.md} +0 -0
- /package/docs/{phase4-deployment-summary.md → archive/2025-10-10-development/phase-summaries/phase4-deployment-summary.md} +0 -0
- /package/docs/{development → archive/2025-10-10-development}/rust-framework-detection.md +0 -0
- /package/docs/{SDK-INTEGRATION-TEST-SUMMARY.md → archive/2025-10-10-development/sdk-integration/SDK-INTEGRATION-TEST-SUMMARY.md} +0 -0
- /package/docs/{SDK-TESTING.md → archive/2025-10-10-development/sdk-integration/SDK-TESTING.md} +0 -0
- /package/docs/{claude-agent-sdk-integration-strategy.md → archive/2025-10-10-development/sdk-integration/claude-agent-sdk-integration-strategy.md} +0 -0
- /package/docs/{sdk-integration-phase1.md → archive/2025-10-10-development/sdk-integration/sdk-integration-phase1.md} +0 -0
- /package/docs/{sdk-migration-guide.md → archive/2025-10-10-development/sdk-integration/sdk-migration-guide.md} +0 -0
- /package/docs/{sdk-phase1-summary.md → archive/2025-10-10-development/sdk-integration/sdk-phase1-summary.md} +0 -0
- /package/docs/{swarm-fullstack → archive/2025-10-10-development/swarm-fullstack}/IMPLEMENTATION-SUMMARY.md +0 -0
- /package/docs/{swarm-fullstack → archive/2025-10-10-development/swarm-fullstack}/frontend-testing-system.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/technical-implementation-guide.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/token-tracking-guide.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/token-tracking-status.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/troubleshooting.md +0 -0
- /package/docs/{development → archive/2025-10-10-development}/typescript-distribution-solution.md +0 -0
- /package/docs/{personalization → archive/2025-10-10-guides/personalization}/cli-integration-guide.md +0 -0
- /package/docs/{phase4-ux → archive/2025-10-10-guides/phase4-ux}/error-handling-ux-guide.md +0 -0
- /package/docs/{phase4-ux → archive/2025-10-10-guides/phase4-ux}/rollout-monitoring-dashboard.md +0 -0
- /package/docs/{phase4-ux → archive/2025-10-10-guides/phase4-ux}/user-experience-validation-framework.md +0 -0
- /package/docs/{phase4-ux → archive/2025-10-10-guides/phase4-ux}/user-onboarding-experience.md +0 -0
- /package/docs/{NOVICE_USER_GUIDE.md → archive/2025-10-10-guides/setup-guides/NOVICE_USER_GUIDE.md} +0 -0
- /package/docs/{QUICK_START.md → archive/2025-10-10-guides/setup-guides/QUICK_START.md} +0 -0
- /package/docs/{SETUP_WIZARD.md → archive/2025-10-10-guides/setup-guides/SETUP_WIZARD.md} +0 -0
- /package/docs/{ZAIR_SETUP_CHECKLIST.md → archive/2025-10-10-guides/setup-guides/ZAIR_SETUP_CHECKLIST.md} +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/PREFERENCE_SYSTEM_GUIDE.md +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/USER_GUIDE.md +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/enterprise-stakeholder-guide.md +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/novice-user-guide.md +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/tutorial.md +0 -0
- /package/docs/{user → archive/2025-10-10-guides/user-guides}/ux-assessment-pain-points.md +0 -0
- /package/docs/{ux-design/mockups → archive/2025-10-10-guides/ux-design}/configuration-ui-mockups.md +0 -0
- /package/docs/{ux-design/wizards → archive/2025-10-10-guides/ux-design}/configuration-wizard-flows.md +0 -0
- /package/docs/{ux-design/ui-patterns → archive/2025-10-10-guides/ux-design}/progressive-disclosure-patterns.md +0 -0
- /package/docs/{ux-design → archive/2025-10-10-guides/ux-design}/usability-testing-plan.md +0 -0
- /package/docs/{ux-design/user-journeys → archive/2025-10-10-guides/ux-design}/user-personas-analysis.md +0 -0
- /package/docs/{ux-design/accessibility → archive/2025-10-10-guides/ux-design}/wcag-compliance-guidelines.md +0 -0
- /package/docs/{HOOK-COMPARISON.md → archive/2025-10-10-integration/HOOK-COMPARISON.md} +0 -0
- /package/docs/{POST-EDIT-PIPELINE-AGENT-INFO.md → archive/2025-10-10-integration/POST-EDIT-PIPELINE-AGENT-INFO.md} +0 -0
- /package/docs/{POST-EDIT-PIPELINE-MERGED.md → archive/2025-10-10-integration/POST-EDIT-PIPELINE-MERGED.md} +0 -0
- /package/docs/{POST-EDIT-PIPELINE-UNIFIED.md → archive/2025-10-10-integration/POST-EDIT-PIPELINE-UNIFIED.md} +0 -0
- /package/docs/{automation → archive/2025-10-10-integration/automation}/swarm-test-pipeline-strategy.md +0 -0
- /package/docs/{integration → archive/2025-10-10-integration/mcp-compatibility}/issue-772-implementation-plan.md +0 -0
- /package/docs/{mcp-backwards-compatibility.md → archive/2025-10-10-integration/mcp-compatibility/mcp-backwards-compatibility.md} +0 -0
- /package/docs/{mcp-novice-simplification.md → archive/2025-10-10-integration/mcp-compatibility/mcp-novice-simplification.md} +0 -0
- /package/docs/{slash-commands → archive/2025-10-10-integration/slash-commands}/cfn-claude-sync-usage.md +0 -0
- /package/docs/{slash-commands → archive/2025-10-10-integration/slash-commands}/cfn-loop-quick-reference.md +0 -0
- /package/docs/{slash-commands → archive/2025-10-10-integration/slash-commands}/cfn-loop-usage.md +0 -0
- /package/docs/{final-slash-commands-setup.md → archive/2025-10-10-integration/slash-commands/final-slash-commands-setup.md} +0 -0
- /package/docs/{commands → archive/2025-10-10-integration/slash-commands}/fullstack.md +0 -0
- /package/docs/{slash-commands-complete-status.md → archive/2025-10-10-integration/slash-commands/slash-commands-complete-status.md} +0 -0
- /package/docs/{slash-commands-status-report.md → archive/2025-10-10-integration/slash-commands/slash-commands-status-report.md} +0 -0
- /package/docs/{workflows → archive/2025-10-10-integration/workflows}/IMPLEMENTATION_SUMMARY.md +0 -0
- /package/docs/{workflows → archive/2025-10-10-integration/workflows}/README.md +0 -0
- /package/docs/{workflows → archive/2025-10-10-integration/workflows}/iterative-build-test-workflow.md +0 -0
- /package/docs/{DOCUMENTATION_AUTO_UPDATER_CHANGELOG.md → archive/2025-10-10-migration/deprecation-notices/DOCUMENTATION_AUTO_UPDATER_CHANGELOG.md} +0 -0
- /package/{MCP_DEPRECATION_NOTICE.md → docs/archive/2025-10-10-migration/deprecation-notices/MCP_DEPRECATION_NOTICE.md} +0 -0
- /package/docs/{migration → archive/2025-10-10-migration/deprecation-notices}/README.md +0 -0
- /package/docs/{deprecation-report.md → archive/2025-10-10-migration/deprecation-notices/deprecation-report.md} +0 -0
- /package/docs/{migration → archive/2025-10-10-migration/v2-migration}/COMPREHENSIVE_MIGRATION_GUIDE.md +0 -0
- /package/docs/{V1_TO_V2_MIGRATION.md → archive/2025-10-10-migration/v2-migration/V1_TO_V2_MIGRATION.md} +0 -0
- /package/{V2_MIGRATION_GUIDE.md → docs/archive/2025-10-10-migration/v2-migration/V2_MIGRATION_GUIDE.md} +0 -0
- /package/docs/{migration → archive/2025-10-10-migration/v2-migration}/migration-assessment-toolkit.md +0 -0
- /package/docs/{npm-package-updates.md → archive/2025-10-10-migration/v2-migration/npm-package-updates.md} +0 -0
- /package/docs/{migration → archive/2025-10-10-migration/v2-migration}/proven-migration-case-studies.md +0 -0
- /package/docs/{APM_INTEGRATION_GUIDE.md → archive/2025-10-10-operations/APM_INTEGRATION_GUIDE.md} +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/DEPLOYMENT.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/ENABLE_AUTHENTICATION.md +0 -0
- /package/docs/{HOW_METRICS_WORK.md → archive/2025-10-10-operations/HOW_METRICS_WORK.md} +0 -0
- /package/docs/{METRICS_PLACEMENT_STRATEGY.md → archive/2025-10-10-operations/METRICS_PLACEMENT_STRATEGY.md} +0 -0
- /package/docs/{PRODUCTION_OPERATIONS.md → archive/2025-10-10-operations/PRODUCTION_OPERATIONS.md} +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/RESOURCE_MANAGEMENT_IMPLEMENTATION_PLAN.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/RESOURCE_MANAGEMENT_TECHNICAL_SPECS.md +0 -0
- /package/docs/{SESSION_CLEANUP_SYSTEM.md → archive/2025-10-10-operations/SESSION_CLEANUP_SYSTEM.md} +0 -0
- /package/docs/{V2_TRANSPARENCY_SYSTEM.md → archive/2025-10-10-operations/V2_TRANSPARENCY_SYSTEM.md} +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/analytics-system.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/benchmarks}/benchmark-claude-flow-conflict-analysis.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/benchmarks}/benchmark-cleanup-analysis.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/benchmarks}/build-artifacts-analysis.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/byzantine-consensus}/FINAL_BYZANTINE_CONSENSUS_VERIFICATION_REPORT.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/byzantine-consensus}/byzantine-consensus-verification-report-phase2.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/byzantine-consensus}/byzantine-consensus-verification-report-phase4.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/chrome-mcp-research-report.md +0 -0
- /package/docs/{ci-cd → archive/2025-10-10-operations/ci-cd}/README.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/cli-command-consolidation-analysis.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/DEPLOYMENT_GUIDE.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/DEPLOYMENT_STRATEGIES.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/DISASTER_RECOVERY.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/DOCKER_SECURITY.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/HELM_CHARTS.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/INFRASTRUCTURE_AS_CODE.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/MONITORING_OBSERVABILITY.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/PERFORMANCE_OPTIMIZATION.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/README.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/pm2-setup.md +0 -0
- /package/docs/{deployment → archive/2025-10-10-operations/deployment}/production-deployment-guide.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/deployment-checklist.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/deployment-report.md +0 -0
- /package/docs/{metrics-counter-usage.md → archive/2025-10-10-operations/metrics-counter-usage.md} +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/migration-strategy.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/performance-analysis}/agent-analysis-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/performance-analysis}/agent-persistence-performance-analysis.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/performance-analysis}/performance-analysis-report.md +0 -0
- /package/docs/{runbooks → archive/2025-10-10-operations/runbooks}/DATABASE_PERFORMANCE_RUNBOOK.md +0 -0
- /package/docs/{runbooks → archive/2025-10-10-operations/runbooks}/EMERGENCY_RESPONSE_PROCEDURES.md +0 -0
- /package/docs/{runbooks → archive/2025-10-10-operations/runbooks}/SERVICE_OUTAGE_RUNBOOK.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/shadcn-mcp-swarm-research-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/training-pipeline-demo.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations}/training-pipeline-real-only.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/COMPREHENSIVE_QA_VALIDATION_REPORT.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/PRODUCTION_VALIDATION_REPORT.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/WIKI_VALIDATION_REPORT.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/checkpoint-1-3-validation-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/checkpoint-1-4-validation-summary.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/cli-validation-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/command-consolidation-usability-validation.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/configuration-system-validation-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/experimental-features-validation-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/final-validation-summary.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/unified-config-validation-report.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/validation-executive-summary.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/validator-scope-overreach-analysis.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/verification-integration.md +0 -0
- /package/docs/{operations → archive/2025-10-10-operations/validation-reports}/verification-validation.md +0 -0
- /package/docs/{performance → archive/2025-10-10-performance}/COMPREHENSIVE_SQLITE_ANALYSIS.md +0 -0
- /package/docs/{LRU_GARBAGE_COLLECTION.md → archive/2025-10-10-performance/LRU_GARBAGE_COLLECTION.md} +0 -0
- /package/docs/{OPTIMIZATION_SAFETY_REPORT.md → archive/2025-10-10-performance/OPTIMIZATION_SAFETY_REPORT.md} +0 -0
- /package/docs/{performance → archive/2025-10-10-performance}/Phase3-Remediation-Report.md +0 -0
- /package/docs/{benchmark-realistic-code-generation.md → archive/2025-10-10-performance/benchmarks/benchmark-realistic-code-generation.md} +0 -0
- /package/docs/{benchmark-rust-known-issues.md → archive/2025-10-10-performance/benchmarks/benchmark-rust-known-issues.md} +0 -0
- /package/docs/{benchmark-rust-support-summary.md → archive/2025-10-10-performance/benchmarks/benchmark-rust-support-summary.md} +0 -0
- /package/docs/{optimization → archive/2025-10-10-performance/optimization}/README.md +0 -0
- /package/docs/{optimization → archive/2025-10-10-performance/optimization}/communication-improvements.md +0 -0
- /package/docs/{performance → archive/2025-10-10-performance/optimization}/sqlite-performance-analysis.md +0 -0
- /package/docs/{security → archive/2025-10-10-security}/DEPLOYMENT_CHECKLIST.md +0 -0
- /package/docs/{security → archive/2025-10-10-security}/GIT_SECRETS_SETUP.md +0 -0
- /package/docs/{operations/SECURITY_AUDIT_REPORT.md → archive/2025-10-10-security/PACKAGE_SECURITY_AUDIT.md} +0 -0
- /package/docs/{security → archive/2025-10-10-security}/SECRET-DETECTION.md +0 -0
- /package/docs/{SECURITY_AUDIT_REPORT.md → archive/2025-10-10-security/SECRET_DETECTION_AUDIT.md} +0 -0
- /package/docs/{security → archive/2025-10-10-security/authentication}/JWT_AUTHENTICATION.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/authentication}/MIGRATION_BASE64_TO_JWT.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/authentication}/REDIS_AUTHENTICATION.md +0 -0
- /package/docs/{SECURITY_AUTH.md → archive/2025-10-10-security/authentication/SECURITY_AUTH.md} +0 -0
- /package/docs/{certification → archive/2025-10-10-security/certification}/FINAL-PRODUCTION-CERTIFICATION.md +0 -0
- /package/docs/{certification → archive/2025-10-10-security/certification}/README.md +0 -0
- /package/docs/{certification → archive/2025-10-10-security/certification}/fullstack-swarm-production-cert.md +0 -0
- /package/docs/{certification → archive/2025-10-10-security/certification}/post-edit-pipeline-production-cert.md +0 -0
- /package/docs/{security → archive/2025-10-10-security}/phase5-security-implementation-summary.md +0 -0
- /package/docs/{security → archive/2025-10-10-security}/sec-024-lamport-clock-implementation.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/vulnerabilities}/CRYPTO_CIPHER_FIX_REPORT.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/vulnerabilities}/CRYPTO_VULNERABILITY_SUMMARY.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/vulnerabilities}/cve-2025-005-006-implementation.md +0 -0
- /package/docs/{security → archive/2025-10-10-security/vulnerabilities}/rbac-test-bypass-fix.md +0 -0
- /package/docs/{testing → archive/2025-10-10-testing}/README.md +0 -0
- /package/docs/{testing → archive/2025-10-10-testing}/consensus-decision-matrix.md +0 -0
- /package/docs/{testing → archive/2025-10-10-testing}/playwright-mcp-integration-guide.md +0 -0
- /package/docs/{CROSS_PLATFORM_TEST_RESULTS.md → archive/2025-10-10-testing/test-results/CROSS_PLATFORM_TEST_RESULTS.md} +0 -0
- /package/docs/{V2_MULTI_LEVEL_TEST_RESULTS.md → archive/2025-10-10-testing/test-results/V2_MULTI_LEVEL_TEST_RESULTS.md} +0 -0
- /package/docs/{backend-testing-system.md → archive/2025-10-10-testing/test-results/backend-testing-system.md} +0 -0
- /package/docs/{benchmark-test-report.md → archive/2025-10-10-testing/test-results/benchmark-test-report.md} +0 -0
- /package/docs/{testing → archive/2025-10-10-testing/test-results}/comprehensive-test-results.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/PRODUCTION-CERTIFICATION-SUMMARY.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/byzantine-consensus-coordination-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/byzantine-consensus-summary.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/completion-validation-verification-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/fullstack-integration-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/phase2-byzantine-consensus-verification-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/phase2-completion-consensus-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/stage5-consensus-report.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/stage6-final-certification.md +0 -0
- /package/docs/{validation → archive/2025-10-10-testing/validation}/stage7-production-certification.md +0 -0
- /package/docs/{ERROR_HANDLING_IMPLEMENTATION_SUMMARY.md → archive/ERROR_HANDLING_IMPLEMENTATION_SUMMARY.md} +0 -0
- /package/docs/{ERROR_MESSAGES_GUIDE.md → archive/ERROR_MESSAGES_GUIDE.md} +0 -0
- /package/docs/{HTTP_POLLING_FALLBACK.md → archive/HTTP_POLLING_FALLBACK.md.backup-1760135090706} +0 -0
- /package/docs/{phase2-implementation-summary.md → archive/cfn-loop/completed-phases/phase2-implementation-summary.md} +0 -0
- /package/docs/{CFN_LOOP.md → archive/cfn-loop/deprecated-3-loop/CFN_LOOP.md} +0 -0
- /package/docs/{validation-loop-pattern.md → archive/cfn-loop/early-patterns/validation-loop-pattern.md} +0 -0
- /package/docs/{MCP_ENDPOINTS_REFERENCE.md → archive/deprecated-mcp/MCP_ENDPOINTS_REFERENCE.md} +0 -0
- /package/docs/{api → archive/deprecated-mcp}/MCP_TOOLS.md +0 -0
- /package/docs/{api → archive/deprecated-mcp}/mcp-swarm-integration-api.md +0 -0
- /package/docs/{API_AUTH.md → archive/phase3-auth-unimplemented/API_AUTH.md} +0 -0
- /package/docs/{AUTHENTICATION.md → archive/phase3-auth-unimplemented/AUTHENTICATION.md} +0 -0
- /package/docs/{AUTH_DOCUMENTATION_SUMMARY.md → archive/phase3-auth-unimplemented/AUTH_DOCUMENTATION_SUMMARY.md} +0 -0
- /package/docs/{AUTH_MIGRATION.md → archive/phase3-auth-unimplemented/AUTH_MIGRATION.md} +0 -0
- /package/docs/{phase5-booster-integration-summary.md → archive/phase5-booster-integration-summary.md} +0 -0
- /package/{CHANGELOG_V2.md → docs/archive/reference-historical/CHANGELOG_V2.md} +0 -0
- /package/docs/{INDEX.md → archive/reference-historical/INDEX.md} +0 -0
- /package/docs/{CFN_LOOP_PHASE_ORCHESTRATION.md → cfn-loop/CFN_LOOP_PHASE_ORCHESTRATION.md} +0 -0
- /package/docs/{CFN_LOOP_SCOPE_CONTROL.md → cfn-loop/CFN_LOOP_SCOPE_CONTROL.md} +0 -0
- /package/docs/{CFN_LOOP_SELF_LOOPING_ADDITIONS.md → cfn-loop/CFN_LOOP_SELF_LOOPING_ADDITIONS.md} +0 -0
- /package/docs/{SPRINT_ORCHESTRATION.md → cfn-loop/SPRINT_ORCHESTRATION.md} +0 -0
- /package/docs/{epic-iteration-limits-implementation.md → cfn-loop/epic-iteration-limits-implementation.md} +0 -0
- /package/docs/{phase-5-sprint-5.2-multi-level-control.md → cfn-loop/phase-5-sprint-5.2-multi-level-control.md} +0 -0
- /package/docs/{phase-orchestrator-sprint-enhancement-summary.md → cfn-loop/phase-orchestrator-sprint-enhancement-summary.md} +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_06_ARCHITECTURE_SUMMARY.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_06_COMPONENT_INTERFACES.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_06_INTEGRATION_STRATEGY.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_06_MESH_COORDINATION_ARCHITECTURE.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_06_README.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_07_HELP_SYSTEM_ARCHITECTURE.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/PHASE_0_SDK_FOUNDATION.md +0 -0
- /package/docs/{phases → cfn-loop/phases}/phase-05-architecture.md +0 -0
- /package/docs/{self-validating-loops-implementation.md → cfn-loop/self-validating-loops-implementation.md} +0 -0
- /package/{CHANGELOG.md → docs/reference/CHANGELOG.md} +0 -0
- /package/{NPM_PACKAGE_CONTENTS.md → docs/reference/NPM_PACKAGE_CONTENTS.md} +0 -0
- /package/{README-NPM.md → docs/reference/README-NPM.md} +0 -0
- /package/docs/{SITE_MAP.md → reference/SITE_MAP.md} +0 -0
- /package/docs/{research → reference/research}/AGENT_ACCESSIBILITY_GUIDE.md +0 -0
- /package/docs/{research → reference/research}/AGENT_PERMISSION_SYSTEM_ANALYSIS.md +0 -0
- /package/docs/{research → reference/research}/CLAUDE_AGENT_SDK_COMPREHENSIVE_ANALYSIS.md +0 -0
- /package/docs/{research → reference/research}/CLAUDE_AGENT_SDK_EXECUTIVE_SUMMARY.md +0 -0
- /package/docs/{research → reference/research}/CLEANUP_CRITERIA_QUICK_REFERENCE.md +0 -0
- /package/docs/{research → reference/research}/claude-session-cpu-behavior-analysis.md +0 -0
- /package/docs/{research → reference/research}/completion-validation-research.md +0 -0
- /package/docs/{templates → reference/templates}/PHASE_DOCUMENT_TEMPLATE.md +0 -0
- /package/docs/{templates → reference/templates}/PHASE_TEMPLATE_USAGE_GUIDE.md +0 -0
- /package/docs/{TEMPLATE_CUSTOMIZATION_GUIDE.md → reference/templates/TEMPLATE_CUSTOMIZATION_GUIDE.md} +0 -0
- /package/docs/{TEMPLATE_EXAMPLES_AND_BEST_PRACTICES.md → reference/templates/TEMPLATE_EXAMPLES_AND_BEST_PRACTICES.md} +0 -0
- /package/docs/{TEMPLATE_SYSTEM_DOCUMENTATION.md → reference/templates/TEMPLATE_SYSTEM_DOCUMENTATION.md} +0 -0
- /package/docs/{wiki → reference/wiki}/background-commands.md +0 -0
- /package/docs/{wiki → reference/wiki}/efficiency-patterns-and-anti-patterns.md +0 -0
- /package/docs/{wiki → reference/wiki}/monitoring-and-metrics-guide.md +0 -0
- /package/docs/{wiki → reference/wiki}/performance-benchmarking-tools.md +0 -0
- /package/docs/{wiki → reference/wiki}/performance-optimization-strategies.md +0 -0
- /package/docs/{wiki → reference/wiki}/performance-testing-framework.md +0 -0
- /package/docs/{wiki → reference/wiki}/resource-optimization-techniques.md +0 -0
- /package/docs/{wiki → reference/wiki}/scalability-guidelines.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/README.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/authentication-authorization-strategies.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/compliance-automation-workflows.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/compliance-frameworks-integration.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/enterprise-security-patterns.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/incident-response-guide.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/secrets-management-guide.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/secure-coding-patterns.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/security-best-practices.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/security-first-development-workflows.md +0 -0
- /package/docs/{wiki → reference/wiki}/security/security-testing-framework.md +0 -0
- /package/docs/{wiki → reference/wiki}/session-persistence.md +0 -0
- /package/docs/{wiki → reference/wiki}/stream-chain-command.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/README.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/cli-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/configuration-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/debug-mode.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/error-analysis.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/linux-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/log-analysis.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/macos-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/mcp-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/performance-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/quick-reference.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting/windows-troubleshooting.md +0 -0
- /package/docs/{wiki → reference/wiki}/troubleshooting-slow-workflows.md +0 -0
- /package/docs/{CROSS_PLATFORM_VALIDATION_CONFIDENCE.json → testing/CROSS_PLATFORM_VALIDATION_CONFIDENCE.json} +0 -0
- /package/docs/{validation → testing/validation}/byzantine-validation-report.json +0 -0
- /package/{templates → examples/templates}/README.md +0 -0
- /package/{templates → examples/templates}/basic-swarm/.claude/settings.json +0 -0
- /package/{templates/basic-swarm/CLAUDE.md → examples/templates/basic-swarm/CLAUDE.md.backup-1760135091193} +0 -0
- /package/{templates → examples/templates}/basic-swarm/coordination.md +0 -0
- /package/{templates → examples/templates}/basic-swarm/memory-bank.md +0 -0
- /package/{templates → examples/templates}/basic-swarm/package.json +0 -0
- /package/{templates → examples/templates}/custom-agent/.claude/settings.json +0 -0
- /package/{templates/custom-agent/CLAUDE.md → examples/templates/custom-agent/CLAUDE.md.backup-1760135091180} +0 -0
- /package/{templates → examples/templates}/event-bus/.claude/settings.json +0 -0
- /package/{templates → examples/templates}/event-bus/CLAUDE.md +0 -0
- /package/{templates → examples/templates}/fleet-manager/.claude/settings.json +0 -0
- /package/{templates/fleet-manager/CLAUDE.md → examples/templates/fleet-manager/CLAUDE.md.backup-1760135091167} +0 -0
- /package/{docs → scripts}/agent-token-analysis.js +0 -0
|
@@ -0,0 +1,1445 @@
|
|
|
1
|
+
# Blocking Coordination Secret Configuration
|
|
2
|
+
|
|
3
|
+
## Overview
|
|
4
|
+
|
|
5
|
+
### What is BLOCKING_COORDINATION_SECRET
|
|
6
|
+
|
|
7
|
+
`BLOCKING_COORDINATION_SECRET` is a cryptographic shared secret used by the CFN Loop blocking coordination system to prevent ACK spoofing attacks in distributed agent environments. It enables HMAC-based message authentication for coordination acknowledgment messages across multiple coordinator instances.
|
|
8
|
+
|
|
9
|
+
**Purpose**: Ensures that only authorized coordinators can acknowledge blocking operations, preventing malicious agents from forging completion signals.
|
|
10
|
+
|
|
11
|
+
**Type**: 256-bit (32-byte) random secret encoded as 64-character hexadecimal string
|
|
12
|
+
|
|
13
|
+
**Scope**: Shared across all blocking coordinator instances within the same deployment environment (production, staging, development)
|
|
14
|
+
|
|
15
|
+
### Why It's Required
|
|
16
|
+
|
|
17
|
+
The blocking coordination system introduced in **Sprint 1.1** uses a distributed acknowledgment protocol where multiple agents coordinate work through Redis pub/sub messaging. Without cryptographic authentication, the system is vulnerable to:
|
|
18
|
+
|
|
19
|
+
1. **ACK Spoofing**: Malicious agents publishing fake acknowledgments to bypass blocking coordination
|
|
20
|
+
2. **Replay Attacks**: Reusing captured ACK messages to manipulate coordinator state
|
|
21
|
+
3. **Unauthorized Coordination**: External processes interfering with agent workflow
|
|
22
|
+
|
|
23
|
+
The HMAC-based verification using `BLOCKING_COORDINATION_SECRET` prevents these attacks by ensuring:
|
|
24
|
+
|
|
25
|
+
- Only coordinators with the shared secret can generate valid ACK signatures
|
|
26
|
+
- Each ACK is cryptographically bound to the specific message payload (agent ID, timestamp, operation)
|
|
27
|
+
- Tampered ACKs are detected and rejected
|
|
28
|
+
|
|
29
|
+
**Implementation Reference**: `src/cfn-loop/blocking-coordination.ts` (lines 148-152)
|
|
30
|
+
|
|
31
|
+
```typescript
|
|
32
|
+
this.hmacSecret = config.hmacSecret || process.env.BLOCKING_COORDINATION_SECRET;
|
|
33
|
+
|
|
34
|
+
if (!this.hmacSecret) {
|
|
35
|
+
throw new Error(
|
|
36
|
+
'BLOCKING_COORDINATION_SECRET environment variable required for ACK verification. ' +
|
|
37
|
+
'Generate with: openssl rand -hex 32'
|
|
38
|
+
);
|
|
39
|
+
}
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
### Security Implications
|
|
43
|
+
|
|
44
|
+
**Shared Secret Model**: All blocking coordinators in the same environment MUST share the identical secret. This creates specific security considerations:
|
|
45
|
+
|
|
46
|
+
1. **Compromise Impact**: If the secret is compromised, all coordinators in that environment are affected
|
|
47
|
+
2. **Secret Distribution**: The secret must be securely distributed to all coordinator instances
|
|
48
|
+
3. **Rotation Complexity**: Rotating the secret requires coordinated updates across all instances
|
|
49
|
+
4. **Environment Isolation**: Production and staging environments MUST use different secrets
|
|
50
|
+
|
|
51
|
+
**Threat Model Protection**:
|
|
52
|
+
|
|
53
|
+
- **PREVENTS**: ACK spoofing, message tampering, unauthorized coordination
|
|
54
|
+
- **DOES NOT PREVENT**: Redis access attacks (use Redis AUTH), network eavesdropping (use TLS), secret theft from environment
|
|
55
|
+
|
|
56
|
+
**Security Level**: HMAC-SHA256 provides cryptographic integrity verification (prevents forgery/tampering), NOT encryption (messages are still visible in Redis)
|
|
57
|
+
|
|
58
|
+
## Secret Generation
|
|
59
|
+
|
|
60
|
+
### Generate 32-Byte Random Secret
|
|
61
|
+
|
|
62
|
+
Use `openssl` to generate a cryptographically secure random secret:
|
|
63
|
+
|
|
64
|
+
```bash
|
|
65
|
+
# Generate 32-byte (256-bit) random secret as hex string
|
|
66
|
+
openssl rand -hex 32
|
|
67
|
+
|
|
68
|
+
# Example output (64 hex characters):
|
|
69
|
+
a3f7e9b2c1d8f4a6e2b9c7d3f8a4e1b6c9d2f7a3e8b1c4d6f9a2e7b3c8d1f4a6
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
**Validation**: The output should be exactly 64 hexadecimal characters (0-9, a-f)
|
|
73
|
+
|
|
74
|
+
**Alternative Methods**:
|
|
75
|
+
|
|
76
|
+
```bash
|
|
77
|
+
# Using Node.js crypto module
|
|
78
|
+
node -e "console.log(require('crypto').randomBytes(32).toString('hex'))"
|
|
79
|
+
|
|
80
|
+
# Using /dev/urandom (Linux/macOS)
|
|
81
|
+
head -c 32 /dev/urandom | xxd -p -c 64
|
|
82
|
+
|
|
83
|
+
# Using Python
|
|
84
|
+
python3 -c "import secrets; print(secrets.token_hex(32))"
|
|
85
|
+
```
|
|
86
|
+
|
|
87
|
+
### Secret Strength Requirements
|
|
88
|
+
|
|
89
|
+
**Minimum Requirements**:
|
|
90
|
+
- **Length**: 32 bytes (256 bits) minimum
|
|
91
|
+
- **Entropy**: Cryptographically random (NOT derived from passwords or predictable sources)
|
|
92
|
+
- **Format**: Hexadecimal string (64 characters: 0-9, a-f)
|
|
93
|
+
|
|
94
|
+
**DO NOT USE**:
|
|
95
|
+
- ❌ Short passwords ("password123")
|
|
96
|
+
- ❌ Dictionary words ("supersecret")
|
|
97
|
+
- ❌ Predictable patterns ("00000000...")
|
|
98
|
+
- ❌ Hashed usernames/timestamps
|
|
99
|
+
- ❌ Reused secrets from other systems
|
|
100
|
+
|
|
101
|
+
**RECOMMENDED**:
|
|
102
|
+
- ✅ `openssl rand -hex 32` output
|
|
103
|
+
- ✅ Hardware security module (HSM) generated keys
|
|
104
|
+
- ✅ Secrets management system (Vault, AWS Secrets Manager)
|
|
105
|
+
|
|
106
|
+
## Secret Distribution
|
|
107
|
+
|
|
108
|
+
### Distribution Methods
|
|
109
|
+
|
|
110
|
+
All blocking coordinators in the same environment need the SAME secret. Choose a distribution method based on your security requirements:
|
|
111
|
+
|
|
112
|
+
#### 1. HashiCorp Vault (Recommended for Production)
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
# Store secret in Vault
|
|
116
|
+
vault kv put secret/claude-flow/blocking-coordination \
|
|
117
|
+
secret="$(openssl rand -hex 32)"
|
|
118
|
+
|
|
119
|
+
# Retrieve secret in application
|
|
120
|
+
export BLOCKING_COORDINATION_SECRET="$(vault kv get -field=secret secret/claude-flow/blocking-coordination)"
|
|
121
|
+
|
|
122
|
+
# Systemd integration
|
|
123
|
+
[Service]
|
|
124
|
+
ExecStartPre=/usr/local/bin/vault-secret-loader.sh
|
|
125
|
+
EnvironmentFile=/run/secrets/blocking-coordination.env
|
|
126
|
+
```
|
|
127
|
+
|
|
128
|
+
**Advantages**:
|
|
129
|
+
- Centralized secret management
|
|
130
|
+
- Audit logging of secret access
|
|
131
|
+
- Automatic rotation support
|
|
132
|
+
- Fine-grained access control
|
|
133
|
+
|
|
134
|
+
**Setup**: See [HashiCorp Vault Integration Guide](https://www.vaultproject.io/docs/platform/k8s)
|
|
135
|
+
|
|
136
|
+
#### 2. AWS Secrets Manager (Cloud Deployments)
|
|
137
|
+
|
|
138
|
+
```bash
|
|
139
|
+
# Create secret in AWS Secrets Manager
|
|
140
|
+
aws secretsmanager create-secret \
|
|
141
|
+
--name claude-flow/blocking-coordination-secret \
|
|
142
|
+
--secret-string "$(openssl rand -hex 32)"
|
|
143
|
+
|
|
144
|
+
# Retrieve secret in application startup
|
|
145
|
+
export BLOCKING_COORDINATION_SECRET=$(aws secretsmanager get-secret-value \
|
|
146
|
+
--secret-id claude-flow/blocking-coordination-secret \
|
|
147
|
+
--query SecretString \
|
|
148
|
+
--output text)
|
|
149
|
+
|
|
150
|
+
# IAM policy for EC2 instance role
|
|
151
|
+
{
|
|
152
|
+
"Version": "2012-10-17",
|
|
153
|
+
"Statement": [{
|
|
154
|
+
"Effect": "Allow",
|
|
155
|
+
"Action": ["secretsmanager:GetSecretValue"],
|
|
156
|
+
"Resource": "arn:aws:secretsmanager:us-east-1:ACCOUNT:secret:claude-flow/blocking-coordination-secret-*"
|
|
157
|
+
}]
|
|
158
|
+
}
|
|
159
|
+
```
|
|
160
|
+
|
|
161
|
+
**Advantages**:
|
|
162
|
+
- Native AWS integration
|
|
163
|
+
- Automatic rotation scheduling
|
|
164
|
+
- Cross-region replication
|
|
165
|
+
- VPC endpoint support (no internet access needed)
|
|
166
|
+
|
|
167
|
+
**Cost**: ~$0.40/month per secret + API call costs
|
|
168
|
+
|
|
169
|
+
#### 3. Kubernetes Secrets (Container Deployments)
|
|
170
|
+
|
|
171
|
+
```bash
|
|
172
|
+
# Create Kubernetes secret
|
|
173
|
+
kubectl create secret generic blocking-coordination-secret \
|
|
174
|
+
--from-literal=secret="$(openssl rand -hex 32)"
|
|
175
|
+
|
|
176
|
+
# Reference in pod definition
|
|
177
|
+
apiVersion: v1
|
|
178
|
+
kind: Pod
|
|
179
|
+
spec:
|
|
180
|
+
containers:
|
|
181
|
+
- name: cfn-coordinator
|
|
182
|
+
env:
|
|
183
|
+
- name: BLOCKING_COORDINATION_SECRET
|
|
184
|
+
valueFrom:
|
|
185
|
+
secretKeyRef:
|
|
186
|
+
name: blocking-coordination-secret
|
|
187
|
+
key: secret
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
**Advantages**:
|
|
191
|
+
- Native Kubernetes integration
|
|
192
|
+
- Namespace isolation
|
|
193
|
+
- RBAC-based access control
|
|
194
|
+
|
|
195
|
+
**Security Note**: Encrypt secrets at rest using KMS provider
|
|
196
|
+
|
|
197
|
+
#### 4. Manual Distribution (Development/Small Deployments)
|
|
198
|
+
|
|
199
|
+
```bash
|
|
200
|
+
# Generate secret once
|
|
201
|
+
SECRET=$(openssl rand -hex 32)
|
|
202
|
+
|
|
203
|
+
# Store in secure file (restricted permissions)
|
|
204
|
+
echo "BLOCKING_COORDINATION_SECRET=$SECRET" > /etc/claude-flow/secrets.env
|
|
205
|
+
chmod 600 /etc/claude-flow/secrets.env
|
|
206
|
+
chown root:root /etc/claude-flow/secrets.env
|
|
207
|
+
|
|
208
|
+
# Distribute to all coordinator servers via SCP
|
|
209
|
+
for host in coord1 coord2 coord3; do
|
|
210
|
+
scp /etc/claude-flow/secrets.env $host:/etc/claude-flow/secrets.env
|
|
211
|
+
done
|
|
212
|
+
```
|
|
213
|
+
|
|
214
|
+
**Advantages**:
|
|
215
|
+
- Simple setup for small deployments
|
|
216
|
+
- No external dependencies
|
|
217
|
+
|
|
218
|
+
**Disadvantages**:
|
|
219
|
+
- Manual rotation process
|
|
220
|
+
- No audit trail
|
|
221
|
+
- Risk of secret exposure during transfer
|
|
222
|
+
|
|
223
|
+
### Security Best Practices for Distribution
|
|
224
|
+
|
|
225
|
+
1. **Encrypt in Transit**: Always use encrypted channels (TLS/SSH) for secret distribution
|
|
226
|
+
2. **Restrict Access**: Only coordinators need the secret (not all agents)
|
|
227
|
+
3. **Audit Logging**: Log all secret access and retrieval operations
|
|
228
|
+
4. **Temporary Exposure**: Never log secrets or display in console output
|
|
229
|
+
5. **Backup Encryption**: Encrypt backups containing secrets
|
|
230
|
+
|
|
231
|
+
**NEVER**:
|
|
232
|
+
- ❌ Commit secrets to git repositories
|
|
233
|
+
- ❌ Send secrets via unencrypted email
|
|
234
|
+
- ❌ Store secrets in Slack/chat systems
|
|
235
|
+
- ❌ Include secrets in error messages or logs
|
|
236
|
+
- ❌ Store secrets in browser localStorage or cookies
|
|
237
|
+
|
|
238
|
+
## Configuration by Deployment Method
|
|
239
|
+
|
|
240
|
+
### 4.1 Systemd (Production Linux Servers)
|
|
241
|
+
|
|
242
|
+
#### Service File Location
|
|
243
|
+
`/etc/systemd/system/cleanup-blocking-coordination.service`
|
|
244
|
+
|
|
245
|
+
#### Configuration Steps
|
|
246
|
+
|
|
247
|
+
**Step 1**: Create override directory for secret storage
|
|
248
|
+
|
|
249
|
+
```bash
|
|
250
|
+
sudo mkdir -p /etc/systemd/system/cleanup-blocking-coordination.service.d/
|
|
251
|
+
```
|
|
252
|
+
|
|
253
|
+
**Step 2**: Create override configuration file
|
|
254
|
+
|
|
255
|
+
```bash
|
|
256
|
+
sudo tee /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf <<EOF
|
|
257
|
+
[Service]
|
|
258
|
+
Environment="BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)"
|
|
259
|
+
Environment="REDIS_PASSWORD=your_redis_password_here"
|
|
260
|
+
EOF
|
|
261
|
+
```
|
|
262
|
+
|
|
263
|
+
**Step 3**: Secure the override file
|
|
264
|
+
|
|
265
|
+
```bash
|
|
266
|
+
# Restrict permissions (root-only read)
|
|
267
|
+
sudo chmod 600 /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf
|
|
268
|
+
sudo chown root:root /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf
|
|
269
|
+
```
|
|
270
|
+
|
|
271
|
+
**Step 4**: Reload systemd and restart service
|
|
272
|
+
|
|
273
|
+
```bash
|
|
274
|
+
sudo systemctl daemon-reload
|
|
275
|
+
sudo systemctl restart cleanup-blocking-coordination.service
|
|
276
|
+
```
|
|
277
|
+
|
|
278
|
+
#### Alternative: Environment File Method
|
|
279
|
+
|
|
280
|
+
**Step 1**: Create environment file
|
|
281
|
+
|
|
282
|
+
```bash
|
|
283
|
+
sudo tee /etc/claude-flow/blocking-coordination.env <<EOF
|
|
284
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
285
|
+
REDIS_PASSWORD=your_redis_password_here
|
|
286
|
+
REDIS_HOST=127.0.0.1
|
|
287
|
+
REDIS_PORT=6379
|
|
288
|
+
REDIS_DB=0
|
|
289
|
+
EOF
|
|
290
|
+
```
|
|
291
|
+
|
|
292
|
+
**Step 2**: Secure environment file
|
|
293
|
+
|
|
294
|
+
```bash
|
|
295
|
+
sudo chmod 600 /etc/claude-flow/blocking-coordination.env
|
|
296
|
+
sudo chown root:root /etc/claude-flow/blocking-coordination.env
|
|
297
|
+
```
|
|
298
|
+
|
|
299
|
+
**Step 3**: Reference in service file
|
|
300
|
+
|
|
301
|
+
Edit `/etc/systemd/system/cleanup-blocking-coordination.service`:
|
|
302
|
+
|
|
303
|
+
```ini
|
|
304
|
+
[Service]
|
|
305
|
+
EnvironmentFile=/etc/claude-flow/blocking-coordination.env
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
**Step 4**: Reload and restart
|
|
309
|
+
|
|
310
|
+
```bash
|
|
311
|
+
sudo systemctl daemon-reload
|
|
312
|
+
sudo systemctl restart cleanup-blocking-coordination.service
|
|
313
|
+
```
|
|
314
|
+
|
|
315
|
+
#### Verification
|
|
316
|
+
|
|
317
|
+
```bash
|
|
318
|
+
# Check service status
|
|
319
|
+
sudo systemctl status cleanup-blocking-coordination.service
|
|
320
|
+
|
|
321
|
+
# Verify environment variables (without exposing secrets)
|
|
322
|
+
sudo systemctl show cleanup-blocking-coordination.service --property=Environment | grep -o 'BLOCKING_COORDINATION_SECRET=[^ ]*' | sed 's/=.*/=***REDACTED***/'
|
|
323
|
+
|
|
324
|
+
# Test service execution
|
|
325
|
+
sudo systemctl start cleanup-blocking-coordination.service
|
|
326
|
+
sudo journalctl -u cleanup-blocking-coordination.service -n 50
|
|
327
|
+
```
|
|
328
|
+
|
|
329
|
+
### 4.2 Cron (Legacy Systems / Non-Systemd)
|
|
330
|
+
|
|
331
|
+
#### Cron File Location
|
|
332
|
+
`/etc/cron.d/cleanup-blocking-coordination`
|
|
333
|
+
|
|
334
|
+
#### Configuration Steps
|
|
335
|
+
|
|
336
|
+
**Step 1**: Create secure environment file
|
|
337
|
+
|
|
338
|
+
```bash
|
|
339
|
+
sudo mkdir -p /etc/claude-flow
|
|
340
|
+
sudo tee /etc/claude-flow/blocking-coordination.env <<EOF
|
|
341
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
342
|
+
REDIS_PASSWORD=your_redis_password_here
|
|
343
|
+
REDIS_HOST=127.0.0.1
|
|
344
|
+
REDIS_PORT=6379
|
|
345
|
+
REDIS_DB=0
|
|
346
|
+
EOF
|
|
347
|
+
sudo chmod 600 /etc/claude-flow/blocking-coordination.env
|
|
348
|
+
sudo chown root:root /etc/claude-flow/blocking-coordination.env
|
|
349
|
+
```
|
|
350
|
+
|
|
351
|
+
**Step 2**: Edit cron file to source environment
|
|
352
|
+
|
|
353
|
+
```bash
|
|
354
|
+
sudo tee /etc/cron.d/cleanup-blocking-coordination <<'EOF'
|
|
355
|
+
# Cleanup stale blocking coordination state every 5 minutes
|
|
356
|
+
|
|
357
|
+
SHELL=/bin/bash
|
|
358
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
359
|
+
|
|
360
|
+
# Source environment file containing secrets
|
|
361
|
+
*/5 * * * * claude-flow source /etc/claude-flow/blocking-coordination.env && /usr/local/bin/cleanup-blocking-coordination.sh >> /home/claude-flow/.claude-flow/logs/blocking-cleanup.log 2>&1
|
|
362
|
+
EOF
|
|
363
|
+
```
|
|
364
|
+
|
|
365
|
+
**Step 3**: Secure cron file
|
|
366
|
+
|
|
367
|
+
```bash
|
|
368
|
+
sudo chmod 644 /etc/cron.d/cleanup-blocking-coordination
|
|
369
|
+
sudo chown root:root /etc/cron.d/cleanup-blocking-coordination
|
|
370
|
+
```
|
|
371
|
+
|
|
372
|
+
#### Alternative: Inline Environment Variables (Less Secure)
|
|
373
|
+
|
|
374
|
+
**WARNING**: This method exposes secrets to `ps` command output. Use only for development.
|
|
375
|
+
|
|
376
|
+
```bash
|
|
377
|
+
sudo tee /etc/cron.d/cleanup-blocking-coordination <<EOF
|
|
378
|
+
SHELL=/bin/bash
|
|
379
|
+
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
|
|
380
|
+
|
|
381
|
+
# Inline secrets (DEVELOPMENT ONLY)
|
|
382
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
383
|
+
REDIS_PASSWORD=your_redis_password_here
|
|
384
|
+
REDIS_HOST=127.0.0.1
|
|
385
|
+
REDIS_PORT=6379
|
|
386
|
+
REDIS_DB=0
|
|
387
|
+
|
|
388
|
+
# Run cleanup every 5 minutes
|
|
389
|
+
*/5 * * * * claude-flow /usr/local/bin/cleanup-blocking-coordination.sh >> /home/claude-flow/.claude-flow/logs/blocking-cleanup.log 2>&1
|
|
390
|
+
EOF
|
|
391
|
+
```
|
|
392
|
+
|
|
393
|
+
#### Verification
|
|
394
|
+
|
|
395
|
+
```bash
|
|
396
|
+
# Check cron file syntax
|
|
397
|
+
sudo crontab -u claude-flow -l 2>/dev/null || cat /etc/cron.d/cleanup-blocking-coordination
|
|
398
|
+
|
|
399
|
+
# Monitor cron execution
|
|
400
|
+
sudo tail -f /var/log/syslog | grep cleanup-blocking-coordination # Debian/Ubuntu
|
|
401
|
+
sudo tail -f /var/log/cron | grep cleanup-blocking-coordination # RHEL/CentOS
|
|
402
|
+
|
|
403
|
+
# Check application logs
|
|
404
|
+
tail -f /home/claude-flow/.claude-flow/logs/blocking-cleanup.log
|
|
405
|
+
|
|
406
|
+
# Manual test execution
|
|
407
|
+
sudo -u claude-flow bash -c 'source /etc/claude-flow/blocking-coordination.env && /usr/local/bin/cleanup-blocking-coordination.sh --dry-run'
|
|
408
|
+
```
|
|
409
|
+
|
|
410
|
+
### 4.3 Node.js Direct Execution
|
|
411
|
+
|
|
412
|
+
#### Development Environment
|
|
413
|
+
|
|
414
|
+
**Method 1**: Export in shell session
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
# Generate and export secret (session-scoped)
|
|
418
|
+
export BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
419
|
+
export REDIS_PASSWORD=your_redis_password_here
|
|
420
|
+
|
|
421
|
+
# Run Node.js application
|
|
422
|
+
node src/cfn-loop/cfn-loop-orchestrator.js
|
|
423
|
+
```
|
|
424
|
+
|
|
425
|
+
**Method 2**: Use `.env` file with dotenv
|
|
426
|
+
|
|
427
|
+
**Step 1**: Create `.env` file (add to `.gitignore`)
|
|
428
|
+
|
|
429
|
+
```bash
|
|
430
|
+
# Generate .env file
|
|
431
|
+
cat > .env <<EOF
|
|
432
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
433
|
+
REDIS_PASSWORD=your_redis_password_here
|
|
434
|
+
REDIS_HOST=127.0.0.1
|
|
435
|
+
REDIS_PORT=6379
|
|
436
|
+
REDIS_DB=0
|
|
437
|
+
EOF
|
|
438
|
+
|
|
439
|
+
# Secure permissions
|
|
440
|
+
chmod 600 .env
|
|
441
|
+
```
|
|
442
|
+
|
|
443
|
+
**Step 2**: Add to `.gitignore`
|
|
444
|
+
|
|
445
|
+
```bash
|
|
446
|
+
echo ".env" >> .gitignore
|
|
447
|
+
git add .gitignore
|
|
448
|
+
git commit -m "Add .env to gitignore"
|
|
449
|
+
```
|
|
450
|
+
|
|
451
|
+
**Step 3**: Load in Node.js application
|
|
452
|
+
|
|
453
|
+
```javascript
|
|
454
|
+
// Load dotenv at application entry point
|
|
455
|
+
require('dotenv').config();
|
|
456
|
+
|
|
457
|
+
// Access secret
|
|
458
|
+
const secret = process.env.BLOCKING_COORDINATION_SECRET;
|
|
459
|
+
if (!secret) {
|
|
460
|
+
throw new Error('BLOCKING_COORDINATION_SECRET not configured');
|
|
461
|
+
}
|
|
462
|
+
```
|
|
463
|
+
|
|
464
|
+
**Method 3**: Inline environment variable
|
|
465
|
+
|
|
466
|
+
```bash
|
|
467
|
+
# Set environment variable for single command
|
|
468
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32) node src/cfn-loop/cfn-loop-orchestrator.js
|
|
469
|
+
```
|
|
470
|
+
|
|
471
|
+
#### Production Environment
|
|
472
|
+
|
|
473
|
+
**Method 1**: System-wide environment file
|
|
474
|
+
|
|
475
|
+
```bash
|
|
476
|
+
# Create system environment file
|
|
477
|
+
sudo tee /etc/environment.d/50-claude-flow.conf <<EOF
|
|
478
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
479
|
+
EOF
|
|
480
|
+
|
|
481
|
+
sudo chmod 644 /etc/environment.d/50-claude-flow.conf
|
|
482
|
+
|
|
483
|
+
# Restart session or reload environment
|
|
484
|
+
source /etc/environment.d/50-claude-flow.conf
|
|
485
|
+
```
|
|
486
|
+
|
|
487
|
+
**Method 2**: User profile configuration
|
|
488
|
+
|
|
489
|
+
```bash
|
|
490
|
+
# Add to ~/.bashrc or ~/.profile
|
|
491
|
+
echo "export BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)" >> ~/.bashrc
|
|
492
|
+
source ~/.bashrc
|
|
493
|
+
```
|
|
494
|
+
|
|
495
|
+
**Method 3**: Process manager (PM2)
|
|
496
|
+
|
|
497
|
+
```bash
|
|
498
|
+
# Create PM2 ecosystem file
|
|
499
|
+
cat > ecosystem.config.js <<EOF
|
|
500
|
+
module.exports = {
|
|
501
|
+
apps: [{
|
|
502
|
+
name: 'cfn-loop-orchestrator',
|
|
503
|
+
script: 'src/cfn-loop/cfn-loop-orchestrator.js',
|
|
504
|
+
env: {
|
|
505
|
+
BLOCKING_COORDINATION_SECRET: '$(openssl rand -hex 32)',
|
|
506
|
+
REDIS_PASSWORD: 'your_redis_password_here',
|
|
507
|
+
NODE_ENV: 'production'
|
|
508
|
+
}
|
|
509
|
+
}]
|
|
510
|
+
};
|
|
511
|
+
EOF
|
|
512
|
+
|
|
513
|
+
# Start with PM2
|
|
514
|
+
pm2 start ecosystem.config.js
|
|
515
|
+
```
|
|
516
|
+
|
|
517
|
+
#### Verification
|
|
518
|
+
|
|
519
|
+
```bash
|
|
520
|
+
# Check environment variable is set (without exposing value)
|
|
521
|
+
node -e "console.log(process.env.BLOCKING_COORDINATION_SECRET ? 'Secret is set' : 'Secret is MISSING')"
|
|
522
|
+
|
|
523
|
+
# Verify secret format (64 hex characters)
|
|
524
|
+
node -e "const s = process.env.BLOCKING_COORDINATION_SECRET; console.log(s && /^[0-9a-f]{64}$/i.test(s) ? 'Valid format' : 'Invalid format')"
|
|
525
|
+
|
|
526
|
+
# Test coordinator initialization
|
|
527
|
+
node -e "
|
|
528
|
+
const { BlockingCoordination } = require('./src/cfn-loop/blocking-coordination');
|
|
529
|
+
try {
|
|
530
|
+
const coord = new BlockingCoordination({ hmacSecret: process.env.BLOCKING_COORDINATION_SECRET });
|
|
531
|
+
console.log('✅ Coordinator initialized successfully');
|
|
532
|
+
} catch (err) {
|
|
533
|
+
console.error('❌ Initialization failed:', err.message);
|
|
534
|
+
}
|
|
535
|
+
"
|
|
536
|
+
```
|
|
537
|
+
|
|
538
|
+
### 4.4 Docker Container Deployment
|
|
539
|
+
|
|
540
|
+
#### Method 1: Environment Variable at Runtime
|
|
541
|
+
|
|
542
|
+
```bash
|
|
543
|
+
# Generate secret
|
|
544
|
+
SECRET=$(openssl rand -hex 32)
|
|
545
|
+
|
|
546
|
+
# Run container with environment variable
|
|
547
|
+
docker run -d \
|
|
548
|
+
--name cfn-coordinator \
|
|
549
|
+
-e BLOCKING_COORDINATION_SECRET="$SECRET" \
|
|
550
|
+
-e REDIS_HOST=redis \
|
|
551
|
+
-e REDIS_PASSWORD=your_redis_password \
|
|
552
|
+
claude-flow-novice:latest
|
|
553
|
+
```
|
|
554
|
+
|
|
555
|
+
#### Method 2: Docker Compose with Environment File
|
|
556
|
+
|
|
557
|
+
**Step 1**: Create `.env` file for Docker Compose
|
|
558
|
+
|
|
559
|
+
```bash
|
|
560
|
+
cat > .env.production <<EOF
|
|
561
|
+
BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
562
|
+
REDIS_PASSWORD=$(openssl rand -hex 16)
|
|
563
|
+
EOF
|
|
564
|
+
|
|
565
|
+
chmod 600 .env.production
|
|
566
|
+
```
|
|
567
|
+
|
|
568
|
+
**Step 2**: Reference in `docker-compose.yml`
|
|
569
|
+
|
|
570
|
+
```yaml
|
|
571
|
+
version: '3.8'
|
|
572
|
+
|
|
573
|
+
services:
|
|
574
|
+
cfn-coordinator:
|
|
575
|
+
image: claude-flow-novice:latest
|
|
576
|
+
env_file:
|
|
577
|
+
- .env.production
|
|
578
|
+
environment:
|
|
579
|
+
- REDIS_HOST=redis
|
|
580
|
+
- NODE_ENV=production
|
|
581
|
+
depends_on:
|
|
582
|
+
- redis
|
|
583
|
+
restart: unless-stopped
|
|
584
|
+
|
|
585
|
+
redis:
|
|
586
|
+
image: redis:7-alpine
|
|
587
|
+
command: redis-server --requirepass ${REDIS_PASSWORD}
|
|
588
|
+
volumes:
|
|
589
|
+
- redis-data:/data
|
|
590
|
+
restart: unless-stopped
|
|
591
|
+
|
|
592
|
+
volumes:
|
|
593
|
+
redis-data:
|
|
594
|
+
```
|
|
595
|
+
|
|
596
|
+
**Step 3**: Deploy with Docker Compose
|
|
597
|
+
|
|
598
|
+
```bash
|
|
599
|
+
docker-compose --env-file .env.production up -d
|
|
600
|
+
```
|
|
601
|
+
|
|
602
|
+
#### Method 3: Docker Secrets (Docker Swarm)
|
|
603
|
+
|
|
604
|
+
**Step 1**: Create Docker secret
|
|
605
|
+
|
|
606
|
+
```bash
|
|
607
|
+
# Generate and create secret
|
|
608
|
+
openssl rand -hex 32 | docker secret create blocking_coordination_secret -
|
|
609
|
+
```
|
|
610
|
+
|
|
611
|
+
**Step 2**: Reference in `docker-compose.yml` (Swarm mode)
|
|
612
|
+
|
|
613
|
+
```yaml
|
|
614
|
+
version: '3.8'
|
|
615
|
+
|
|
616
|
+
services:
|
|
617
|
+
cfn-coordinator:
|
|
618
|
+
image: claude-flow-novice:latest
|
|
619
|
+
secrets:
|
|
620
|
+
- blocking_coordination_secret
|
|
621
|
+
environment:
|
|
622
|
+
- BLOCKING_COORDINATION_SECRET_FILE=/run/secrets/blocking_coordination_secret
|
|
623
|
+
deploy:
|
|
624
|
+
replicas: 3
|
|
625
|
+
restart_policy:
|
|
626
|
+
condition: on-failure
|
|
627
|
+
|
|
628
|
+
secrets:
|
|
629
|
+
blocking_coordination_secret:
|
|
630
|
+
external: true
|
|
631
|
+
```
|
|
632
|
+
|
|
633
|
+
**Step 3**: Update application to read from file
|
|
634
|
+
|
|
635
|
+
```javascript
|
|
636
|
+
// src/cfn-loop/blocking-coordination.ts
|
|
637
|
+
const fs = require('fs');
|
|
638
|
+
|
|
639
|
+
const secretFile = process.env.BLOCKING_COORDINATION_SECRET_FILE;
|
|
640
|
+
const hmacSecret = secretFile && fs.existsSync(secretFile)
|
|
641
|
+
? fs.readFileSync(secretFile, 'utf8').trim()
|
|
642
|
+
: process.env.BLOCKING_COORDINATION_SECRET;
|
|
643
|
+
|
|
644
|
+
if (!hmacSecret) {
|
|
645
|
+
throw new Error('BLOCKING_COORDINATION_SECRET or BLOCKING_COORDINATION_SECRET_FILE required');
|
|
646
|
+
}
|
|
647
|
+
```
|
|
648
|
+
|
|
649
|
+
#### Method 4: Dockerfile Build Argument (NOT Recommended for Production)
|
|
650
|
+
|
|
651
|
+
```dockerfile
|
|
652
|
+
# Dockerfile
|
|
653
|
+
FROM node:18-alpine
|
|
654
|
+
|
|
655
|
+
# Build argument (only use for development)
|
|
656
|
+
ARG BLOCKING_COORDINATION_SECRET
|
|
657
|
+
|
|
658
|
+
# Set as environment variable
|
|
659
|
+
ENV BLOCKING_COORDINATION_SECRET=${BLOCKING_COORDINATION_SECRET}
|
|
660
|
+
|
|
661
|
+
COPY . /app
|
|
662
|
+
WORKDIR /app
|
|
663
|
+
RUN npm install --production
|
|
664
|
+
|
|
665
|
+
CMD ["node", "src/cfn-loop/cfn-loop-orchestrator.js"]
|
|
666
|
+
```
|
|
667
|
+
|
|
668
|
+
**Build and run**:
|
|
669
|
+
|
|
670
|
+
```bash
|
|
671
|
+
# Build with secret (NOT recommended - secret stored in image layer)
|
|
672
|
+
docker build --build-arg BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32) -t cfn-coordinator .
|
|
673
|
+
|
|
674
|
+
# Run container
|
|
675
|
+
docker run -d cfn-coordinator
|
|
676
|
+
```
|
|
677
|
+
|
|
678
|
+
**WARNING**: This method embeds the secret in the Docker image layer history. ONLY use for development/testing.
|
|
679
|
+
|
|
680
|
+
#### Verification
|
|
681
|
+
|
|
682
|
+
```bash
|
|
683
|
+
# Check container environment (without exposing secrets)
|
|
684
|
+
docker exec cfn-coordinator sh -c 'echo ${BLOCKING_COORDINATION_SECRET:+Secret is set}'
|
|
685
|
+
|
|
686
|
+
# View container logs for initialization errors
|
|
687
|
+
docker logs cfn-coordinator | grep -i "blocking_coordination"
|
|
688
|
+
|
|
689
|
+
# Test coordinator health
|
|
690
|
+
docker exec cfn-coordinator node -e "
|
|
691
|
+
const { BlockingCoordination } = require('./src/cfn-loop/blocking-coordination');
|
|
692
|
+
const coord = new BlockingCoordination({ hmacSecret: process.env.BLOCKING_COORDINATION_SECRET });
|
|
693
|
+
console.log('✅ Coordinator healthy');
|
|
694
|
+
"
|
|
695
|
+
```
|
|
696
|
+
|
|
697
|
+
#### Kubernetes Deployment
|
|
698
|
+
|
|
699
|
+
**Step 1**: Create Kubernetes secret
|
|
700
|
+
|
|
701
|
+
```bash
|
|
702
|
+
kubectl create secret generic blocking-coordination-secret \
|
|
703
|
+
--from-literal=secret=$(openssl rand -hex 32) \
|
|
704
|
+
--namespace=claude-flow
|
|
705
|
+
```
|
|
706
|
+
|
|
707
|
+
**Step 2**: Reference in deployment manifest
|
|
708
|
+
|
|
709
|
+
```yaml
|
|
710
|
+
apiVersion: apps/v1
|
|
711
|
+
kind: Deployment
|
|
712
|
+
metadata:
|
|
713
|
+
name: cfn-coordinator
|
|
714
|
+
namespace: claude-flow
|
|
715
|
+
spec:
|
|
716
|
+
replicas: 3
|
|
717
|
+
selector:
|
|
718
|
+
matchLabels:
|
|
719
|
+
app: cfn-coordinator
|
|
720
|
+
template:
|
|
721
|
+
metadata:
|
|
722
|
+
labels:
|
|
723
|
+
app: cfn-coordinator
|
|
724
|
+
spec:
|
|
725
|
+
containers:
|
|
726
|
+
- name: coordinator
|
|
727
|
+
image: claude-flow-novice:latest
|
|
728
|
+
env:
|
|
729
|
+
- name: BLOCKING_COORDINATION_SECRET
|
|
730
|
+
valueFrom:
|
|
731
|
+
secretKeyRef:
|
|
732
|
+
name: blocking-coordination-secret
|
|
733
|
+
key: secret
|
|
734
|
+
- name: REDIS_HOST
|
|
735
|
+
value: redis-service
|
|
736
|
+
- name: NODE_ENV
|
|
737
|
+
value: production
|
|
738
|
+
ports:
|
|
739
|
+
- containerPort: 3000
|
|
740
|
+
livenessProbe:
|
|
741
|
+
httpGet:
|
|
742
|
+
path: /health
|
|
743
|
+
port: 3000
|
|
744
|
+
initialDelaySeconds: 30
|
|
745
|
+
periodSeconds: 10
|
|
746
|
+
```
|
|
747
|
+
|
|
748
|
+
**Step 3**: Apply deployment
|
|
749
|
+
|
|
750
|
+
```bash
|
|
751
|
+
kubectl apply -f deployment.yaml
|
|
752
|
+
```
|
|
753
|
+
|
|
754
|
+
**Verification**:
|
|
755
|
+
|
|
756
|
+
```bash
|
|
757
|
+
# Check pods are running
|
|
758
|
+
kubectl get pods -n claude-flow
|
|
759
|
+
|
|
760
|
+
# Check secret is mounted correctly
|
|
761
|
+
kubectl exec -n claude-flow cfn-coordinator-xxxx -- sh -c 'echo ${BLOCKING_COORDINATION_SECRET:+Secret is set}'
|
|
762
|
+
|
|
763
|
+
# View pod logs
|
|
764
|
+
kubectl logs -n claude-flow -l app=cfn-coordinator --tail=50
|
|
765
|
+
```
|
|
766
|
+
|
|
767
|
+
## Verification
|
|
768
|
+
|
|
769
|
+
### Environment Variable Validation
|
|
770
|
+
|
|
771
|
+
**Check secret is set** (without exposing value):
|
|
772
|
+
|
|
773
|
+
```bash
|
|
774
|
+
# Bash
|
|
775
|
+
echo ${BLOCKING_COORDINATION_SECRET:+Secret is configured}
|
|
776
|
+
|
|
777
|
+
# Node.js
|
|
778
|
+
node -e "console.log(process.env.BLOCKING_COORDINATION_SECRET ? '✅ Secret is set' : '❌ Secret is MISSING')"
|
|
779
|
+
|
|
780
|
+
# Python
|
|
781
|
+
python3 -c "import os; print('✅ Secret is set' if os.getenv('BLOCKING_COORDINATION_SECRET') else '❌ Secret is MISSING')"
|
|
782
|
+
```
|
|
783
|
+
|
|
784
|
+
**Validate secret format** (64 hex characters):
|
|
785
|
+
|
|
786
|
+
```bash
|
|
787
|
+
# Bash
|
|
788
|
+
if [[ "$BLOCKING_COORDINATION_SECRET" =~ ^[0-9a-fA-F]{64}$ ]]; then
|
|
789
|
+
echo "✅ Valid format (64 hex characters)"
|
|
790
|
+
else
|
|
791
|
+
echo "❌ Invalid format (expected 64 hex characters)"
|
|
792
|
+
fi
|
|
793
|
+
|
|
794
|
+
# Node.js
|
|
795
|
+
node -e "
|
|
796
|
+
const s = process.env.BLOCKING_COORDINATION_SECRET;
|
|
797
|
+
const valid = s && /^[0-9a-f]{64}$/i.test(s);
|
|
798
|
+
console.log(valid ? '✅ Valid format' : '❌ Invalid format');
|
|
799
|
+
console.log('Length:', s?.length || 0, '(expected: 64)');
|
|
800
|
+
"
|
|
801
|
+
```
|
|
802
|
+
|
|
803
|
+
### Application Integration Testing
|
|
804
|
+
|
|
805
|
+
**Test coordinator initialization**:
|
|
806
|
+
|
|
807
|
+
```javascript
|
|
808
|
+
// test-coordinator-init.js
|
|
809
|
+
const { BlockingCoordination } = require('./src/cfn-loop/blocking-coordination');
|
|
810
|
+
|
|
811
|
+
try {
|
|
812
|
+
const coordinator = new BlockingCoordination({
|
|
813
|
+
hmacSecret: process.env.BLOCKING_COORDINATION_SECRET,
|
|
814
|
+
redisConfig: {
|
|
815
|
+
host: process.env.REDIS_HOST || '127.0.0.1',
|
|
816
|
+
port: parseInt(process.env.REDIS_PORT || '6379'),
|
|
817
|
+
password: process.env.REDIS_PASSWORD
|
|
818
|
+
}
|
|
819
|
+
});
|
|
820
|
+
|
|
821
|
+
console.log('✅ Coordinator initialized successfully');
|
|
822
|
+
console.log(' HMAC secret configured:', coordinator.hmacSecret ? 'Yes (redacted)' : 'No');
|
|
823
|
+
process.exit(0);
|
|
824
|
+
} catch (error) {
|
|
825
|
+
console.error('❌ Coordinator initialization failed:', error.message);
|
|
826
|
+
process.exit(1);
|
|
827
|
+
}
|
|
828
|
+
```
|
|
829
|
+
|
|
830
|
+
**Run test**:
|
|
831
|
+
|
|
832
|
+
```bash
|
|
833
|
+
node test-coordinator-init.js
|
|
834
|
+
```
|
|
835
|
+
|
|
836
|
+
### Error Messages Reference
|
|
837
|
+
|
|
838
|
+
**Missing secret**:
|
|
839
|
+
|
|
840
|
+
```
|
|
841
|
+
Error: BLOCKING_COORDINATION_SECRET environment variable required for ACK verification.
|
|
842
|
+
Generate with: openssl rand -hex 32
|
|
843
|
+
```
|
|
844
|
+
|
|
845
|
+
**Action**: Set the environment variable before starting the application
|
|
846
|
+
|
|
847
|
+
**Invalid secret format**:
|
|
848
|
+
|
|
849
|
+
```
|
|
850
|
+
Error: BLOCKING_COORDINATION_SECRET must be 64 hexadecimal characters (32 bytes)
|
|
851
|
+
Current length: XX characters
|
|
852
|
+
```
|
|
853
|
+
|
|
854
|
+
**Action**: Regenerate secret using `openssl rand -hex 32`
|
|
855
|
+
|
|
856
|
+
**Secret mismatch** (between coordinators):
|
|
857
|
+
|
|
858
|
+
```
|
|
859
|
+
Warning: ACK verification failed - HMAC signature mismatch
|
|
860
|
+
Agent: agent-123
|
|
861
|
+
Expected coordinator: coordinator-1
|
|
862
|
+
Possible causes: Secret mismatch between coordinators
|
|
863
|
+
```
|
|
864
|
+
|
|
865
|
+
**Action**: Verify all coordinators use identical secret
|
|
866
|
+
|
|
867
|
+
### Troubleshooting Secret Issues
|
|
868
|
+
|
|
869
|
+
#### Issue: Environment variable not propagating to child processes
|
|
870
|
+
|
|
871
|
+
**Symptoms**: Parent process has secret, but spawned processes do not
|
|
872
|
+
|
|
873
|
+
**Solution**: Explicitly export variable before spawning
|
|
874
|
+
|
|
875
|
+
```bash
|
|
876
|
+
# Incorrect (not exported)
|
|
877
|
+
BLOCKING_COORDINATION_SECRET=xxx node app.js
|
|
878
|
+
|
|
879
|
+
# Correct (exported)
|
|
880
|
+
export BLOCKING_COORDINATION_SECRET=xxx
|
|
881
|
+
node app.js
|
|
882
|
+
```
|
|
883
|
+
|
|
884
|
+
#### Issue: Secret visible in process list
|
|
885
|
+
|
|
886
|
+
**Symptoms**: `ps aux` shows secret in command arguments
|
|
887
|
+
|
|
888
|
+
**Solution**: Use environment file instead of inline arguments
|
|
889
|
+
|
|
890
|
+
```bash
|
|
891
|
+
# Vulnerable (visible in ps output)
|
|
892
|
+
node app.js --secret=$BLOCKING_COORDINATION_SECRET
|
|
893
|
+
|
|
894
|
+
# Secure (environment variable)
|
|
895
|
+
export BLOCKING_COORDINATION_SECRET=xxx
|
|
896
|
+
node app.js
|
|
897
|
+
```
|
|
898
|
+
|
|
899
|
+
#### Issue: Secret not persisting across reboots
|
|
900
|
+
|
|
901
|
+
**Symptoms**: Works until server restart
|
|
902
|
+
|
|
903
|
+
**Solution**: Use systemd override, environment file, or secrets manager
|
|
904
|
+
|
|
905
|
+
```bash
|
|
906
|
+
# Systemd override (persists across reboots)
|
|
907
|
+
sudo systemctl edit cleanup-blocking-coordination.service
|
|
908
|
+
|
|
909
|
+
# Add:
|
|
910
|
+
[Service]
|
|
911
|
+
Environment="BLOCKING_COORDINATION_SECRET=xxx"
|
|
912
|
+
```
|
|
913
|
+
|
|
914
|
+
#### Issue: Docker container secret not set
|
|
915
|
+
|
|
916
|
+
**Symptoms**: Container logs show missing secret error
|
|
917
|
+
|
|
918
|
+
**Solution**: Verify environment variable is passed correctly
|
|
919
|
+
|
|
920
|
+
```bash
|
|
921
|
+
# Check container environment
|
|
922
|
+
docker inspect cfn-coordinator | jq '.[0].Config.Env'
|
|
923
|
+
|
|
924
|
+
# Check running container
|
|
925
|
+
docker exec cfn-coordinator env | grep BLOCKING_COORDINATION_SECRET
|
|
926
|
+
```
|
|
927
|
+
|
|
928
|
+
## Secret Rotation
|
|
929
|
+
|
|
930
|
+
### Rotation Strategy
|
|
931
|
+
|
|
932
|
+
Rotating the `BLOCKING_COORDINATION_SECRET` requires coordinated updates across all coordinator instances to prevent ACK verification failures during transition.
|
|
933
|
+
|
|
934
|
+
### Zero-Downtime Rotation Procedure
|
|
935
|
+
|
|
936
|
+
#### Phase 1: Dual-Secret Support (Application Update)
|
|
937
|
+
|
|
938
|
+
**Step 1**: Update application to support multiple secrets
|
|
939
|
+
|
|
940
|
+
```typescript
|
|
941
|
+
// src/cfn-loop/blocking-coordination.ts
|
|
942
|
+
class BlockingCoordination {
|
|
943
|
+
private hmacSecrets: Map<number, string>;
|
|
944
|
+
|
|
945
|
+
constructor(config: BlockingCoordinationConfig) {
|
|
946
|
+
// Support multiple versioned secrets
|
|
947
|
+
this.hmacSecrets = new Map([
|
|
948
|
+
[1, process.env.BLOCKING_COORDINATION_SECRET_V1],
|
|
949
|
+
[2, process.env.BLOCKING_COORDINATION_SECRET_V2] // New secret
|
|
950
|
+
].filter(([_, secret]) => secret));
|
|
951
|
+
|
|
952
|
+
if (this.hmacSecrets.size === 0) {
|
|
953
|
+
throw new Error('At least one BLOCKING_COORDINATION_SECRET required');
|
|
954
|
+
}
|
|
955
|
+
|
|
956
|
+
// Use latest version for signing
|
|
957
|
+
this.currentVersion = Math.max(...this.hmacSecrets.keys());
|
|
958
|
+
this.hmacSecret = this.hmacSecrets.get(this.currentVersion);
|
|
959
|
+
}
|
|
960
|
+
|
|
961
|
+
private generateAckSignature(payload: string, version?: number): string {
|
|
962
|
+
const secret = version
|
|
963
|
+
? this.hmacSecrets.get(version)
|
|
964
|
+
: this.hmacSecret;
|
|
965
|
+
|
|
966
|
+
return createHmac('sha256', secret)
|
|
967
|
+
.update(payload)
|
|
968
|
+
.digest('hex');
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
private verifyAckSignature(payload: string, signature: string, version: number): boolean {
|
|
972
|
+
// Try all known secret versions
|
|
973
|
+
for (const [ver, secret] of this.hmacSecrets.entries()) {
|
|
974
|
+
const expected = createHmac('sha256', secret)
|
|
975
|
+
.update(payload)
|
|
976
|
+
.digest('hex');
|
|
977
|
+
|
|
978
|
+
if (timingSafeEqual(Buffer.from(signature), Buffer.from(expected))) {
|
|
979
|
+
return true;
|
|
980
|
+
}
|
|
981
|
+
}
|
|
982
|
+
|
|
983
|
+
return false;
|
|
984
|
+
}
|
|
985
|
+
}
|
|
986
|
+
```
|
|
987
|
+
|
|
988
|
+
**Step 2**: Deploy updated code to all coordinators
|
|
989
|
+
|
|
990
|
+
```bash
|
|
991
|
+
# Deploy without changing secrets yet
|
|
992
|
+
git pull
|
|
993
|
+
npm install
|
|
994
|
+
pm2 restart all
|
|
995
|
+
```
|
|
996
|
+
|
|
997
|
+
#### Phase 2: Add New Secret (Environment Update)
|
|
998
|
+
|
|
999
|
+
**Step 3**: Generate new secret
|
|
1000
|
+
|
|
1001
|
+
```bash
|
|
1002
|
+
NEW_SECRET=$(openssl rand -hex 32)
|
|
1003
|
+
echo "New secret: $NEW_SECRET"
|
|
1004
|
+
```
|
|
1005
|
+
|
|
1006
|
+
**Step 4**: Add new secret to all coordinators (keep old secret)
|
|
1007
|
+
|
|
1008
|
+
```bash
|
|
1009
|
+
# Systemd
|
|
1010
|
+
sudo tee -a /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf <<EOF
|
|
1011
|
+
Environment="BLOCKING_COORDINATION_SECRET_V2=$NEW_SECRET"
|
|
1012
|
+
EOF
|
|
1013
|
+
|
|
1014
|
+
sudo systemctl daemon-reload
|
|
1015
|
+
sudo systemctl restart cleanup-blocking-coordination.service
|
|
1016
|
+
```
|
|
1017
|
+
|
|
1018
|
+
**Step 5**: Verify dual-secret operation
|
|
1019
|
+
|
|
1020
|
+
```bash
|
|
1021
|
+
# Check both secrets are set
|
|
1022
|
+
sudo systemctl show cleanup-blocking-coordination.service --property=Environment | grep BLOCKING_COORDINATION_SECRET
|
|
1023
|
+
|
|
1024
|
+
# Monitor logs for ACK verification success
|
|
1025
|
+
sudo journalctl -u cleanup-blocking-coordination.service -f | grep "ACK verified"
|
|
1026
|
+
```
|
|
1027
|
+
|
|
1028
|
+
#### Phase 3: Remove Old Secret (Cleanup)
|
|
1029
|
+
|
|
1030
|
+
**Step 6**: Wait for all coordinators to use new secret (monitor metrics)
|
|
1031
|
+
|
|
1032
|
+
```bash
|
|
1033
|
+
# Monitor ACK signature versions in Redis
|
|
1034
|
+
redis-cli --scan --pattern "blocking:ack:*" | while read key; do
|
|
1035
|
+
redis-cli hget "$key" signature_version
|
|
1036
|
+
done | sort | uniq -c
|
|
1037
|
+
```
|
|
1038
|
+
|
|
1039
|
+
**Step 7**: Remove old secret once v1 count is zero
|
|
1040
|
+
|
|
1041
|
+
```bash
|
|
1042
|
+
# Systemd
|
|
1043
|
+
sudo vim /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf
|
|
1044
|
+
# Remove: Environment="BLOCKING_COORDINATION_SECRET_V1=..."
|
|
1045
|
+
|
|
1046
|
+
sudo systemctl daemon-reload
|
|
1047
|
+
sudo systemctl restart cleanup-blocking-coordination.service
|
|
1048
|
+
```
|
|
1049
|
+
|
|
1050
|
+
**Step 8**: Update application to remove dual-secret support (optional)
|
|
1051
|
+
|
|
1052
|
+
```typescript
|
|
1053
|
+
// Revert to single secret after rotation complete
|
|
1054
|
+
this.hmacSecret = process.env.BLOCKING_COORDINATION_SECRET;
|
|
1055
|
+
```
|
|
1056
|
+
|
|
1057
|
+
### Rotation Frequency Recommendations
|
|
1058
|
+
|
|
1059
|
+
**Production**: Rotate every 90 days (quarterly)
|
|
1060
|
+
|
|
1061
|
+
**Staging**: Rotate every 30 days (monthly)
|
|
1062
|
+
|
|
1063
|
+
**Development**: Rotate on demand (security incident response)
|
|
1064
|
+
|
|
1065
|
+
**Triggers for immediate rotation**:
|
|
1066
|
+
- Secret exposure suspected (logs, error messages, commits)
|
|
1067
|
+
- Security audit finding
|
|
1068
|
+
- Employee offboarding with secret access
|
|
1069
|
+
- Compliance requirement (PCI-DSS, HIPAA)
|
|
1070
|
+
|
|
1071
|
+
### Verification After Rotation
|
|
1072
|
+
|
|
1073
|
+
**Check all coordinators use new secret**:
|
|
1074
|
+
|
|
1075
|
+
```bash
|
|
1076
|
+
# Systemd
|
|
1077
|
+
for host in coord1 coord2 coord3; do
|
|
1078
|
+
echo "=== $host ==="
|
|
1079
|
+
ssh $host "sudo systemctl show cleanup-blocking-coordination.service --property=Environment | grep -o 'BLOCKING_COORDINATION_SECRET=[^ ]*' | sed 's/=.*/=***REDACTED***/'"
|
|
1080
|
+
done
|
|
1081
|
+
```
|
|
1082
|
+
|
|
1083
|
+
**Test ACK verification**:
|
|
1084
|
+
|
|
1085
|
+
```javascript
|
|
1086
|
+
// test-ack-rotation.js
|
|
1087
|
+
const { BlockingCoordination } = require('./src/cfn-loop/blocking-coordination');
|
|
1088
|
+
|
|
1089
|
+
const coordinator = new BlockingCoordination({
|
|
1090
|
+
hmacSecret: process.env.BLOCKING_COORDINATION_SECRET
|
|
1091
|
+
});
|
|
1092
|
+
|
|
1093
|
+
const testPayload = JSON.stringify({
|
|
1094
|
+
agentId: 'test-agent',
|
|
1095
|
+
timestamp: Date.now(),
|
|
1096
|
+
operation: 'test'
|
|
1097
|
+
});
|
|
1098
|
+
|
|
1099
|
+
const signature = coordinator.generateAckSignature(testPayload);
|
|
1100
|
+
console.log('✅ ACK signature generated successfully');
|
|
1101
|
+
|
|
1102
|
+
const isValid = coordinator.verifyAckSignature(testPayload, signature);
|
|
1103
|
+
console.log(isValid ? '✅ ACK verification successful' : '❌ ACK verification FAILED');
|
|
1104
|
+
```
|
|
1105
|
+
|
|
1106
|
+
**Monitor error rates**:
|
|
1107
|
+
|
|
1108
|
+
```bash
|
|
1109
|
+
# Check for ACK verification failures after rotation
|
|
1110
|
+
sudo journalctl -u cleanup-blocking-coordination.service --since "1 hour ago" | grep -i "verification failed"
|
|
1111
|
+
```
|
|
1112
|
+
|
|
1113
|
+
## Security Best Practices
|
|
1114
|
+
|
|
1115
|
+
### Least Privilege Principle
|
|
1116
|
+
|
|
1117
|
+
**Coordinator-Only Access**: Only blocking coordinator processes need the secret
|
|
1118
|
+
|
|
1119
|
+
```bash
|
|
1120
|
+
# File permissions for systemd override
|
|
1121
|
+
sudo chmod 600 /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf
|
|
1122
|
+
sudo chown root:root /etc/systemd/system/cleanup-blocking-coordination.service.d/override.conf
|
|
1123
|
+
|
|
1124
|
+
# Process-level isolation
|
|
1125
|
+
# Run coordinator as dedicated service user (not root)
|
|
1126
|
+
[Service]
|
|
1127
|
+
User=claude-flow
|
|
1128
|
+
Group=claude-flow
|
|
1129
|
+
```
|
|
1130
|
+
|
|
1131
|
+
**Access Control List**:
|
|
1132
|
+
- ✅ Coordinator processes (read-only)
|
|
1133
|
+
- ✅ Deployment automation (write for rotation)
|
|
1134
|
+
- ✅ Security team (audit/rotation)
|
|
1135
|
+
- ❌ Application logs
|
|
1136
|
+
- ❌ Monitoring systems
|
|
1137
|
+
- ❌ Development environments (use separate secret)
|
|
1138
|
+
|
|
1139
|
+
### Secret Expiration Policies
|
|
1140
|
+
|
|
1141
|
+
**Time-Based Rotation**:
|
|
1142
|
+
|
|
1143
|
+
```bash
|
|
1144
|
+
# Automated rotation with cron (every 90 days)
|
|
1145
|
+
0 0 1 */3 * /usr/local/bin/rotate-blocking-secret.sh
|
|
1146
|
+
```
|
|
1147
|
+
|
|
1148
|
+
**Event-Based Rotation**:
|
|
1149
|
+
- Security incident detected
|
|
1150
|
+
- Employee offboarding
|
|
1151
|
+
- Audit finding
|
|
1152
|
+
- Compliance requirement
|
|
1153
|
+
|
|
1154
|
+
**Rotation Tracking**:
|
|
1155
|
+
|
|
1156
|
+
```bash
|
|
1157
|
+
# Store rotation history in audit log
|
|
1158
|
+
cat > /var/log/claude-flow/secret-rotation.log <<EOF
|
|
1159
|
+
$(date -Iseconds) - Secret rotated (version 2 -> 3) by automation
|
|
1160
|
+
EOF
|
|
1161
|
+
```
|
|
1162
|
+
|
|
1163
|
+
### Audit Logging Requirements
|
|
1164
|
+
|
|
1165
|
+
**Log Secret Access** (NOT the secret value):
|
|
1166
|
+
|
|
1167
|
+
```javascript
|
|
1168
|
+
// src/cfn-loop/blocking-coordination.ts
|
|
1169
|
+
const auditLogger = require('./audit-logger');
|
|
1170
|
+
|
|
1171
|
+
constructor(config) {
|
|
1172
|
+
if (process.env.BLOCKING_COORDINATION_SECRET) {
|
|
1173
|
+
auditLogger.info({
|
|
1174
|
+
event: 'secret_loaded',
|
|
1175
|
+
source: 'environment_variable',
|
|
1176
|
+
timestamp: new Date().toISOString(),
|
|
1177
|
+
process: process.pid
|
|
1178
|
+
});
|
|
1179
|
+
}
|
|
1180
|
+
}
|
|
1181
|
+
```
|
|
1182
|
+
|
|
1183
|
+
**Log ACK Verification Events**:
|
|
1184
|
+
|
|
1185
|
+
```javascript
|
|
1186
|
+
private verifyAckSignature(payload, signature) {
|
|
1187
|
+
const isValid = /* verification logic */;
|
|
1188
|
+
|
|
1189
|
+
auditLogger.info({
|
|
1190
|
+
event: 'ack_verification',
|
|
1191
|
+
result: isValid ? 'success' : 'failure',
|
|
1192
|
+
agentId: JSON.parse(payload).agentId,
|
|
1193
|
+
timestamp: new Date().toISOString()
|
|
1194
|
+
});
|
|
1195
|
+
|
|
1196
|
+
return isValid;
|
|
1197
|
+
}
|
|
1198
|
+
```
|
|
1199
|
+
|
|
1200
|
+
**Log Rotation Events**:
|
|
1201
|
+
|
|
1202
|
+
```bash
|
|
1203
|
+
# /usr/local/bin/rotate-blocking-secret.sh
|
|
1204
|
+
logger -t blocking-secret-rotation "Secret rotation initiated by $(whoami)"
|
|
1205
|
+
# ... rotation logic ...
|
|
1206
|
+
logger -t blocking-secret-rotation "Secret rotation completed successfully"
|
|
1207
|
+
```
|
|
1208
|
+
|
|
1209
|
+
### Production vs Staging Secrets
|
|
1210
|
+
|
|
1211
|
+
**Environment Isolation**: NEVER share secrets between environments
|
|
1212
|
+
|
|
1213
|
+
```bash
|
|
1214
|
+
# Production secret (stored in Vault/Secrets Manager)
|
|
1215
|
+
PROD_SECRET=$(vault kv get -field=secret secret/prod/blocking-coordination)
|
|
1216
|
+
|
|
1217
|
+
# Staging secret (different from production)
|
|
1218
|
+
STAGING_SECRET=$(vault kv get -field=secret secret/staging/blocking-coordination)
|
|
1219
|
+
|
|
1220
|
+
# Development secret (generated locally, never deployed)
|
|
1221
|
+
DEV_SECRET=$(openssl rand -hex 32)
|
|
1222
|
+
```
|
|
1223
|
+
|
|
1224
|
+
**Secret Naming Convention**:
|
|
1225
|
+
|
|
1226
|
+
```
|
|
1227
|
+
secret/prod/blocking-coordination-secret
|
|
1228
|
+
secret/staging/blocking-coordination-secret
|
|
1229
|
+
secret/dev/blocking-coordination-secret
|
|
1230
|
+
```
|
|
1231
|
+
|
|
1232
|
+
**Environment Detection**:
|
|
1233
|
+
|
|
1234
|
+
```javascript
|
|
1235
|
+
// Auto-select secret based on NODE_ENV
|
|
1236
|
+
const secretKey = {
|
|
1237
|
+
production: 'secret/prod/blocking-coordination-secret',
|
|
1238
|
+
staging: 'secret/staging/blocking-coordination-secret',
|
|
1239
|
+
development: 'secret/dev/blocking-coordination-secret'
|
|
1240
|
+
}[process.env.NODE_ENV || 'development'];
|
|
1241
|
+
```
|
|
1242
|
+
|
|
1243
|
+
### Secrets in Backups
|
|
1244
|
+
|
|
1245
|
+
**Encrypt Backups**:
|
|
1246
|
+
|
|
1247
|
+
```bash
|
|
1248
|
+
# Backup with encryption
|
|
1249
|
+
tar czf - /etc/claude-flow/ | gpg --encrypt --recipient backup@example.com > backup.tar.gz.gpg
|
|
1250
|
+
|
|
1251
|
+
# Restore
|
|
1252
|
+
gpg --decrypt backup.tar.gz.gpg | tar xzf -
|
|
1253
|
+
```
|
|
1254
|
+
|
|
1255
|
+
**Exclude Secrets from General Backups**:
|
|
1256
|
+
|
|
1257
|
+
```bash
|
|
1258
|
+
# /etc/backup.d/exclude.conf
|
|
1259
|
+
/etc/claude-flow/blocking-coordination.env
|
|
1260
|
+
/etc/systemd/system/*.service.d/override.conf
|
|
1261
|
+
```
|
|
1262
|
+
|
|
1263
|
+
**Backup Retention Policy**:
|
|
1264
|
+
- Encrypted backups: 90 days retention
|
|
1265
|
+
- After secret rotation: Delete old backups (contain old secret)
|
|
1266
|
+
|
|
1267
|
+
### Never Commit Secrets to Git
|
|
1268
|
+
|
|
1269
|
+
**Pre-Commit Hook**:
|
|
1270
|
+
|
|
1271
|
+
```bash
|
|
1272
|
+
#!/bin/bash
|
|
1273
|
+
# .git/hooks/pre-commit
|
|
1274
|
+
|
|
1275
|
+
# Check for potential secret patterns
|
|
1276
|
+
if git diff --cached | grep -E 'BLOCKING_COORDINATION_SECRET.*=.*[0-9a-f]{64}'; then
|
|
1277
|
+
echo "❌ ERROR: Potential secret detected in commit!"
|
|
1278
|
+
echo "Remove secret before committing"
|
|
1279
|
+
exit 1
|
|
1280
|
+
fi
|
|
1281
|
+
```
|
|
1282
|
+
|
|
1283
|
+
**Git History Scanning**:
|
|
1284
|
+
|
|
1285
|
+
```bash
|
|
1286
|
+
# Scan git history for exposed secrets (use git-secrets or truffleHog)
|
|
1287
|
+
docker run -v $(pwd):/repo trufflesecurity/trufflehog:latest filesystem /repo
|
|
1288
|
+
|
|
1289
|
+
# If secret found, rewrite history (DESTRUCTIVE)
|
|
1290
|
+
git filter-branch --force --index-filter \
|
|
1291
|
+
"git rm --cached --ignore-unmatch .env" \
|
|
1292
|
+
--prune-empty --tag-name-filter cat -- --all
|
|
1293
|
+
```
|
|
1294
|
+
|
|
1295
|
+
**.gitignore Protection**:
|
|
1296
|
+
|
|
1297
|
+
```bash
|
|
1298
|
+
# Add to .gitignore
|
|
1299
|
+
echo ".env" >> .gitignore
|
|
1300
|
+
echo ".env.*" >> .gitignore
|
|
1301
|
+
echo "**/override.conf" >> .gitignore
|
|
1302
|
+
echo "**/*secret*.env" >> .gitignore
|
|
1303
|
+
```
|
|
1304
|
+
|
|
1305
|
+
### Secret Storage Comparison
|
|
1306
|
+
|
|
1307
|
+
| Method | Security | Ease of Use | Rotation | Audit Trail | Cost |
|
|
1308
|
+
|--------|----------|-------------|----------|-------------|------|
|
|
1309
|
+
| **HashiCorp Vault** | ★★★★★ | ★★★☆☆ | ★★★★★ | ★★★★★ | Free (OSS) |
|
|
1310
|
+
| **AWS Secrets Manager** | ★★★★★ | ★★★★☆ | ★★★★★ | ★★★★★ | $0.40/month |
|
|
1311
|
+
| **Kubernetes Secrets** | ★★★★☆ | ★★★★★ | ★★★☆☆ | ★★★☆☆ | Free |
|
|
1312
|
+
| **Environment File** | ★★★☆☆ | ★★★★★ | ★★☆☆☆ | ★☆☆☆☆ | Free |
|
|
1313
|
+
| **Systemd Override** | ★★★★☆ | ★★★★☆ | ★★☆☆☆ | ★★☆☆☆ | Free |
|
|
1314
|
+
| **Inline Environment** | ★★☆☆☆ | ★★★★★ | ★★☆☆☆ | ★☆☆☆☆ | Free |
|
|
1315
|
+
|
|
1316
|
+
**Recommendation by Environment**:
|
|
1317
|
+
|
|
1318
|
+
- **Production**: HashiCorp Vault or AWS Secrets Manager
|
|
1319
|
+
- **Staging**: Kubernetes Secrets or Systemd Override
|
|
1320
|
+
- **Development**: Environment File (`.env`)
|
|
1321
|
+
- **CI/CD**: GitHub Secrets or GitLab CI Variables
|
|
1322
|
+
|
|
1323
|
+
## Integration Points
|
|
1324
|
+
|
|
1325
|
+
### Systemd Service Configuration
|
|
1326
|
+
|
|
1327
|
+
See complete systemd deployment guide: [infrastructure/systemd/README.md](../../infrastructure/systemd/README.md)
|
|
1328
|
+
|
|
1329
|
+
**Security Configuration Section**: Add after "Installation" section in systemd README
|
|
1330
|
+
|
|
1331
|
+
### Cron Job Configuration
|
|
1332
|
+
|
|
1333
|
+
See complete cron deployment guide: [infrastructure/cron/README.md](../../infrastructure/cron/README.md)
|
|
1334
|
+
|
|
1335
|
+
**Security Configuration Section**: Add after "Configuration" section in cron README
|
|
1336
|
+
|
|
1337
|
+
### Related Documentation
|
|
1338
|
+
|
|
1339
|
+
- **ACK Spoofing Prevention**: Sprint 1.1 security implementation
|
|
1340
|
+
- **Redis Authentication**: `readme/logs-cli-redis.md`
|
|
1341
|
+
- **Security Audit**: `reports/validation/SECURITY_AUDIT_ITERATION_2_REPORT.md`
|
|
1342
|
+
- **Blocking Coordination**: `src/cfn-loop/blocking-coordination.ts`
|
|
1343
|
+
|
|
1344
|
+
## Compliance Considerations
|
|
1345
|
+
|
|
1346
|
+
### PCI-DSS Requirements
|
|
1347
|
+
|
|
1348
|
+
**Requirement 8.2.3**: Strong cryptographic secrets (32 bytes minimum)
|
|
1349
|
+
|
|
1350
|
+
✅ **Compliance**: `openssl rand -hex 32` generates 256-bit random secrets
|
|
1351
|
+
|
|
1352
|
+
**Requirement 8.2.4**: Secrets must be changed every 90 days
|
|
1353
|
+
|
|
1354
|
+
✅ **Compliance**: Implement automated rotation (see Secret Rotation section)
|
|
1355
|
+
|
|
1356
|
+
**Requirement 8.2.5**: Secrets must be encrypted in storage
|
|
1357
|
+
|
|
1358
|
+
✅ **Compliance**: Use HashiCorp Vault or AWS Secrets Manager with encryption at rest
|
|
1359
|
+
|
|
1360
|
+
### HIPAA Security Rule
|
|
1361
|
+
|
|
1362
|
+
**§164.312(a)(2)(iv)**: Encryption and Decryption
|
|
1363
|
+
|
|
1364
|
+
✅ **Compliance**: Secrets stored in encrypted secrets managers (Vault, AWS Secrets Manager)
|
|
1365
|
+
|
|
1366
|
+
**§164.308(a)(4)**: Access Controls
|
|
1367
|
+
|
|
1368
|
+
✅ **Compliance**: Least privilege access (coordinator-only), audit logging
|
|
1369
|
+
|
|
1370
|
+
### SOC 2 Type II
|
|
1371
|
+
|
|
1372
|
+
**CC6.1**: Logical access controls
|
|
1373
|
+
|
|
1374
|
+
✅ **Compliance**: Role-based access (systemd user isolation, file permissions)
|
|
1375
|
+
|
|
1376
|
+
**CC6.2**: Transmission security
|
|
1377
|
+
|
|
1378
|
+
✅ **Compliance**: TLS for secret distribution (Vault API, AWS Secrets Manager)
|
|
1379
|
+
|
|
1380
|
+
**CC6.7**: Encryption
|
|
1381
|
+
|
|
1382
|
+
✅ **Compliance**: Secrets encrypted at rest and in transit
|
|
1383
|
+
|
|
1384
|
+
## Quick Reference
|
|
1385
|
+
|
|
1386
|
+
### Generate Secret
|
|
1387
|
+
|
|
1388
|
+
```bash
|
|
1389
|
+
openssl rand -hex 32
|
|
1390
|
+
```
|
|
1391
|
+
|
|
1392
|
+
### Systemd Configuration
|
|
1393
|
+
|
|
1394
|
+
```bash
|
|
1395
|
+
sudo systemctl edit cleanup-blocking-coordination.service
|
|
1396
|
+
# Add: Environment="BLOCKING_COORDINATION_SECRET=xxx"
|
|
1397
|
+
sudo systemctl daemon-reload
|
|
1398
|
+
sudo systemctl restart cleanup-blocking-coordination.service
|
|
1399
|
+
```
|
|
1400
|
+
|
|
1401
|
+
### Cron Configuration
|
|
1402
|
+
|
|
1403
|
+
```bash
|
|
1404
|
+
echo "source /etc/claude-flow/blocking-coordination.env && /usr/local/bin/cleanup-blocking-coordination.sh" > /etc/cron.d/cleanup-blocking-coordination
|
|
1405
|
+
```
|
|
1406
|
+
|
|
1407
|
+
### Node.js Configuration
|
|
1408
|
+
|
|
1409
|
+
```bash
|
|
1410
|
+
export BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32)
|
|
1411
|
+
node src/cfn-loop/cfn-loop-orchestrator.js
|
|
1412
|
+
```
|
|
1413
|
+
|
|
1414
|
+
### Docker Configuration
|
|
1415
|
+
|
|
1416
|
+
```bash
|
|
1417
|
+
docker run -e BLOCKING_COORDINATION_SECRET=$(openssl rand -hex 32) claude-flow-novice:latest
|
|
1418
|
+
```
|
|
1419
|
+
|
|
1420
|
+
### Verification
|
|
1421
|
+
|
|
1422
|
+
```bash
|
|
1423
|
+
echo ${BLOCKING_COORDINATION_SECRET:+Secret is set}
|
|
1424
|
+
```
|
|
1425
|
+
|
|
1426
|
+
### Test Application
|
|
1427
|
+
|
|
1428
|
+
```bash
|
|
1429
|
+
node -e "const {BlockingCoordination} = require('./src/cfn-loop/blocking-coordination'); new BlockingCoordination({hmacSecret: process.env.BLOCKING_COORDINATION_SECRET}); console.log('✅ Success')"
|
|
1430
|
+
```
|
|
1431
|
+
|
|
1432
|
+
## Support
|
|
1433
|
+
|
|
1434
|
+
**Issues**: Report secret-related issues to security team (do NOT include secret values in bug reports)
|
|
1435
|
+
|
|
1436
|
+
**Documentation Updates**: Submit PRs to `docs/deployment/blocking-coordination-secrets.md`
|
|
1437
|
+
|
|
1438
|
+
**Security Incidents**: Email security@example.com for immediate secret rotation
|
|
1439
|
+
|
|
1440
|
+
---
|
|
1441
|
+
|
|
1442
|
+
**Document Version**: 1.0.0
|
|
1443
|
+
**Last Updated**: 2025-10-10
|
|
1444
|
+
**Sprint**: 3.2 Loop 3 Iteration 2
|
|
1445
|
+
**Related Issue**: REC-002 HMAC Secret Documentation
|