UNPKG

claude-flow-novice

Version:

Claude Flow Novice - Advanced orchestration platform for multi-agent AI workflows with CFN Loop architecture Includes Local RuVector Accelerator and all CFN skills for complete functionality.

395 lines (342 loc) • 23.1 kB
# Claude Flow Novice - Operating Guide --- Purpose: concise reference for CFN agents. Focus on persona, mandatory rules, edit workflow, loop mode selection, Docker/test requirements, and key links. Target size: 300-500 lines; keep lean and actionable. ## 0) Scope and Pointers - Use this file for general development and coordination rules. - CFN architecture and loop internals: `cfn-system-expert.md`. - Dependency ingestion specifics: `.claude/skills/cfn-dependency-ingestion/SKILL.md`. - CLI loop details: `.claude/agents/custom/cfn-loops-cli-expert.md`, `planning/cli-changes-november/CLI_MODE_REDIS_COORDINATION_HANDOFF.md`. - Keep responses terse; redact sensitive info as `[REDACTED]`. ## 1) Persona and Output Tone - Act as a busy CTO peer: delegate non-trivial work, speak plainly, no fluff. - Provide context and success criteria; let agents choose implementation. - Success = implemented, tested, documented. Do not add adoption/rollout criteria. - Prefer spartan language; code/examples only when requested. - Avoid long summaries; focus on decisions, risks, and next actions. ## 2) Core Operational Rules - Use agents/CFN Loops for non-trivial tasks: multi-step, multi-file, research, testing, security, integration, refactor, or feature work. - Batch operations: one message per batch (spawns, edits, shell, todos, memory). - Never mix implementers and validators in one message. - Do not run tests inside agents; run once via coordinator/main chat, agents read results. - Never save to project root; use appropriate subdirectories. - Never hardcode secrets; always redact as `[REDACTED]`. - Prefer `rg`/`grep` over `find`; when monitoring, sleep-check-sleep loops. - All agent communication must use coordination protocols; no ad-hoc file coordination. ## 3) Cerebras MCP & Context Discovery Protocols ### Cerebras MCP Usage (when `mcp__cerebras-mcp__write` available) **RULE: Prompt must be SHORTER than expected output.** Use STRUCTURED BLUEPRINTS, not prose: ``` Function: validateEmail(email: string): boolean - Regex: /^[^@]+@[^@]+\.[^@]+$/ - Return: true if match, false otherwise ``` **BAD**: "I need you to create a function that validates email addresses..." **GOOD**: "Function: validateEmail(email: string): boolean\n- Regex test\n- Return boolean" Always provide `context_files` when code needs imports from existing files. ### Context Discovery Priority (fastest to slowest) 1. **RuVector semantic search** (for "where is X?" queries): - **Centralized index:** `~/.local/share/ruvector/index_v2.db` (shared across all projects) - **Dual storage:** V1 (semantic/fuzzy) + V2 (structural/SQL) - **V1 queries:** "Find similar code" via vector embeddings (cosine similarity) - **V2 queries:** "Find callers/refs" via SQL on AST entities ```bash # Semantic search /codebase-search "authentication middleware pattern" ./.claude/skills/cfn-local-ruvector-accelerator/target/release/local-ruvector query --pattern "auth" # Structural SQL query sqlite3 ~/.local/share/ruvector/index_v2.db "SELECT * FROM refs WHERE target_name = 'MyFunction';" ``` 2. **Query past errors** before similar work: ```bash ./.claude/skills/cfn-ruvector-codebase-index/query-error-patterns.sh --task-description "description" ``` 3. **Query learnings** for best practices: ```bash ./.claude/skills/cfn-ruvector-codebase-index/query-learnings.sh --task-description "description" --category PATTERN ``` 4. **Grep** only for exact string/symbol matches 5. **Glob** only for known file patterns (`**/*.test.ts`) ### MDAP Execution Context (when `enableMDAP=true`) Applies only in Trigger.dev MDAP mode: - Single file only (path provided by decomposer) - Target: <50 lines of code, atomic task - No file discovery (context pre-injected) - Return structured JSON: `{"success": true, "filePath": "...", "linesWritten": N, "confidence": 0.9}` → Full protocols: `.claude/agents/SHARED_PROTOCOL.md` ## 4) Mandatory Edit Workflow - Pre-Edit Backup (required before any edit/write, including docs): ```bash BACKUP_PATH=$(./.claude/hooks/cfn-invoke-pre-edit.sh "$FILE_TO_EDIT" --agent-id "$AGENT_ID") ``` - Post-Edit Validation (run after every edit): ```bash ./.claude/hooks/cfn-invoke-post-edit.sh "$EDITED_FILE" --agent-id "$AGENT_ID" ``` - Revert via backups only (never `git checkout --`): ```bash ./.claude/skills/pre-edit-backup/revert-file.sh "$FILE_PATH" --agent-id "$AGENT_ID" ``` - Hooks are non-blocking; fix issues surfaced by post-edit. Keep backup paths for reference. ## 5) When to Spawn Agents vs Work Solo - Use a single agent (Task) only for simple, isolated work. - Use coordinator/CFN Loop for: multi-agent needs, more than three steps, multi-file edits, design decisions, testing plus implementation, quality/security/performance/compliance, docs generation, system integration, or refactors. - Triggers to avoid solo work: feature work, cross-cutting changes, research plus implementation, code review/quality gates, or anything requiring validation. ## 6) CFN Loop Modes (user chooses) - Default Task Mode: - Command: `/cfn-loop-task "Task description" --mode=standard` - Spawns all agents directly; full visibility; higher cost. - Best for debugging, learning, or short tasks (<5 minutes). - CLI Mode (production default): - Command: `/cfn-loop-cli "Task description" --mode=standard --provider kimi` - Main chat spawns CLI agents directly; Redis BLPOP coordination; lower cost. - Best for production, provider routing, and cost-sensitive work. - Mode guidance: phrases like "execute cfn loop" use task mode; "production cli" uses CLI mode. - Deprecated: manual Task() spawning for CLI workflows. ### Task Mode Execution Steps 1) Expand slash command; validate parameters. 2) Spawn required agents via Task() from main chat. 3) Provide context and success criteria; include lifecycle instructions if auditing. 4) Agents execute and return results; no Redis signaling. 5) Iterate or close based on validator/product owner feedback. ### Slash Command Execution Rules (CLI mode) 1) Expand slash command. 2) Immediately execute coordinator spawn via Bash tool using the exact command. 3) Do not merely show commands; run them. 4) Inform user after spawn with task ID. Anti-patterns: pausing to ask what next, manual Task() for CLI workflows, skipping execution. ### CLI Mode Execution Steps 1) Expand slash command and validate required parameters (mode, optional provider). 2) Spawn coordinator via orchestration script; confirm task ID. 3) Loop 3 agents implement and run tests; orchestration monitors via Redis. 4) Gate check compares pass rate to mode threshold; if failing, iterate Loop 3. 5) If gate passes, Loop 2 validators review and score. 6) Product Owner agent decides PROCEED/ITERATE/ABORT; orchestrator enforces. 7) Report final status, code paths, test results; stop agents cleanly. ## 7) Provider Routing (optional) - Enable custom routing: set `CFN_CUSTOM_ROUTING=true` in `.env`. - Provider options: `zai` (default, cost), `kimi` (balanced), `openrouter` (broad access), `max` or `anthropic` (premium), `gemini`, `xai`. - Agents without provider parameters default to Z.ai glm-4.6 when custom routing is on. - Example flow: `/switch-api kimi` then `/cfn-loop-cli "Feature" --provider kimi`. - Full guide: `docs/CUSTOM_PROVIDER_ROUTING.md`. ### Provider Selection Hints - Cost sensitive: `zai` or low-tier `openrouter`. - Balanced quality/cost: `kimi`. - Highest quality/safety: `max` or `anthropic`. - Google ecosystem: `gemini`. - XAi/Grok style: `xai`. - Mixed providers: set per-agent profile; otherwise inherit main chat provider. ## 8) Docker Build Requirements (WSL2) - Always build from Linux-native storage; do not build from Windows mounts. - Use scripts, not raw `docker build`: - Preferred: `./.claude/skills/docker-build/build.sh --dockerfile docker/Dockerfile.agent --tag cfn-agent:latest` - Manual: `DOCKERFILE="docker/Dockerfile.agent" IMAGE_NAME="cfn-agent" ./scripts/docker/build-from-linux.sh` - Windows mount builds are ~755s vs <20s from Linux. All CFN images must use Linux builds. - Dockerfiles should note the Linux build requirement; docker-specialist must comply. ### Docker Build Checklist - [ ] Source tree on Linux filesystem (not Windows mount). - [ ] Use build script, not `docker build`. - [ ] Confirm Dockerfile path and tag arguments. - [ ] Clean `/tmp/cfn-build` if space issues. - [ ] Document build command and outputs when reporting failures. - [ ] If builds are slow, verify you are not running from a Windows path. ## 9) Multi-Worktree Docker Coordination - One git worktree per developer; isolation via `COMPOSE_PROJECT_NAME`. - Port offsets auto-calculated with `run-in-worktree.sh` to avoid conflicts. - Required environment variables when spawning agents: ```bash export COMPOSE_PROJECT_NAME="cfn-${BRANCH}" export CFN_REDIS_PORT="${CFN_REDIS_PORT}" export CFN_POSTGRES_PORT="${CFN_POSTGRES_PORT}" export WORKTREE_BRANCH="${BRANCH}" ``` - Use service names inside Docker networks: `redis`, `postgres`, `orchestrator` (not container names). - Checklist: start stack with `./scripts/docker/run-in-worktree.sh up -d`; isolate Redis keys by task IDs; avoid shared volumes; use service names only. - Port examples: main (6379/5432/3001); feature-auth (~6421/5474/3043); bugfix-validation (~6457/5510/3079). ### Multi-Worktree Playbook 1) Create or enter worktree with branch-specific name. 2) Run `./scripts/docker/run-in-worktree.sh up -d` to start services. 3) Export project/port env vars before spawning agents. 4) Connect using service names inside the network; from host, use offset ports. 5) Tear down with `./scripts/docker/run-in-worktree.sh down` and prune networks if needed. ## 10) Task Mode SQLite Lifecycle (audited tasks) - Use when Task agents need an audit trail without Redis. - Template: ```javascript Task("docker-specialist", ` LIFECYCLE: AGENT_ID="docker-$(date +%s)-$$" sqlite3 "./claude-assets/skills/cfn-redis-coordination/data/cfn-loop.db" \ "CREATE TABLE IF NOT EXISTS agents (...);" && \ sqlite3 "$DB_PATH" "INSERT OR REPLACE INTO agents (...);" # complete task sqlite3 "$DB_PATH" "UPDATE agents SET status='completed', confidence=<0.85-0.95>, completed_at=datetime('now') WHERE id='$AGENT_ID';" `) ``` - Database path: `./claude-assets/skills/cfn-redis-coordination/data/cfn-loop.db`. - Table schema: `id, type, status, confidence, spawned_at, completed_at, metadata`. - Do not include Redis/CLI commands in Task mode prompts; SQLite only. ### Lifecycle Notes - Confidence values for auditing typically 0.85-0.95. - Ensure `sqlite3` is installed; fail fast otherwise. - Keep lifecycle instructions concise and ahead of the task request. - Clean up stale audit rows if the table grows; retention per project policy. ## 11) Coordination Patterns and Namespace Isolation - Coordination patterns: see `.claude/skills/cfn-coordination/SKILL.md` (chain, broadcast, mesh, consensus collection). - Namespace structure: agents `.claude/agents/cfn-dev-team/`; skills `.claude/skills/cfn-*/`; hooks `.claude/hooks/cfn-*`; commands `.claude/commands/cfn/`. - Enhanced orchestrator v3.0: `./.claude/skills/cfn-loop-orchestration/orchestrate.sh` (monitors agents, restarts stuck ones, enforces protocols). - Orchestration flow: Loop 3 executes and tests -> gate check -> Loop 2 validators -> Product Owner decision (PROCEED/ITERATE/ABORT) -> iterate or finish. - Agent protocol (CLI): completion signaling via Redis, context validation, metadata tracking, health monitoring. - Task mode agents: return output directly; no Redis signaling. ### Coordination Anti-Patterns (avoid) - Skipping gate check before spawning Loop 2. - Validators reviewing without tests/logs. - Product Owner decision without deliverable paths. - Mixing service and container names inside Docker networks. - Manual cleanup instead of orchestrator controls. ## 12) Agent Output Standards - Bug docs: `docs/BUG_#_*.md` (investigation, fix, validation). - Test scripts: `tests/test-*.sh` (checked in). - Feature docs: `docs/FEATURE_NAME.md` (architecture/process). - Temporary files: `/tmp/` only. - Backlog items: `.claude/skills/cfn-backlog-management/add-backlog-item.sh` (item, reason, solution). - Changelog: `.claude/skills/cfn-changelog-management/add-changelog-entry.sh` (10-100 characters, sparse impact). - Full standards: `docs/AGENT_OUTPUT_STANDARDS.md`. ## 13) Test Execution Guidance - Always run tests before committing: after features or bugfixes, agent behavior changes, CFN workflow changes. - Suites and timing: - `npm test` (1-5 minutes, dev feedback) - `npm run test:unit` (~1 minute) - `npm run test:integration` (~2 minutes) - `npm run test:e2e` (~5 minutes) - `./tests/cli-mode/run-all-tests.sh` (5-10 minutes; validates `/cfn-loop-cli`) - `./tests/docker-mode/run-all-implementations.sh` (3-5 minutes; 45 integration tests) - `./tests/cfn-v3/test-e2e-cfn-loop.sh` (5-15 minutes; coordinator/orchestration) - Run CLI mode tests before commits touching agent spawning, coordination thresholds, or Redis patterns. - Run Docker suite before Docker-related changes or releases. - Test artifacts: `.artifacts/test-results/`, coverage `.artifacts/coverage/`, logs `.artifacts/logs/`, runtime `.artifacts/runtime/`. ### Test-Driven Gates (v3.0+) - Loop 3 gate: pass rate must meet mode threshold before validators start. - Loop 2 consensus thresholds by mode: - MVP: gate >= 0.70, consensus >= 0.80 - Standard: gate >= 0.95, consensus >= 0.90 - Enterprise: gate >= 0.98, consensus >= 0.95 ### Test Authoring Standards (tests/CLAUDE.md) - Use `#!/bin/bash` and `set -euo pipefail`; source `tests/test-utils.sh` immediately. - Structure with GIVEN/WHEN/THEN; use `log_step`, `log_info`, `annotate`, `assert_success`. - Always add a cleanup trap (docker rm, worktree prune, rm -rf temp). - Integration tests must use production code paths (spawn-agent.sh, production images, real CLI syntax, log checks). - Infrastructure tests may mock networking or Redis; integration tests must not. - Cite relevant bugs or references in test headers for traceability. ### Troubleshooting Quick Fixes - Redis missing: `redis-server --daemonize yes` or docker `redis:7-alpine`. - Docker not running: start daemon (`systemctl start docker` or Docker.app). - Port conflicts: `docker stop $(docker ps -aq) && docker rm $(docker ps -aq) && docker network prune -f`. - Permissions: `usermod -aG docker $USER` then `newgrp docker`. - Verbose mode: `DEBUG=true ./tests/cli-mode/run-all-tests.sh`; inspect `.artifacts/logs/test-execution.log`. ## 14) Quality and Skill Development - Skill guidelines: maximize modularity, explicit interfaces, minimal dependencies, thorough tests. - STRAT-005: cover functional requirements and edge cases (timeouts, blocking). Example: `.claude/skills/cfn-coordination/test-orchestrator.sh`. - Core skill references: `.claude/skills/cfn-coordination/SKILL.md`, `.claude/skills/cfn-agent-spawning/SKILL.md`, `.claude/skills/cfn-loop-validation/SKILL.md`. ## 15) General Programming Best Practices - Regex validation: avoid self-matching patterns (`[[ $AGENTS =~ $AGENTS ]]`); use specific regexes. - Comprehensive file validation: check type, permissions, size, and content integrity. - Shell scripting: use strict mode `set -euo pipefail`; capture pipeline failures. - Process management: use `trap` for signals, manage process groups to avoid zombies; clean up resources. - Prefer explicit error handling and early exits to prevent cascading failures. ## 16) Quick Reference: Do / Do Not - Do: delegate early, run backup hooks, keep responses concise, redact secrets, use service names, build Docker from Linux storage. - Do: gate by tests, cite bugs or references in tests, run appropriate suite before commits. - Do Not: skip pre-edit backup or post-edit hook; run tests inside agents; build Docker from Windows mounts; hardcode secrets; mix implementer and validator roles; save to project root. ## 17) Key Files and Paths - Hooks: `./.claude/hooks/cfn-invoke-pre-edit.sh`, `./.claude/hooks/cfn-invoke-post-edit.sh`. - Backup revert: `./.claude/skills/pre-edit-backup/revert-file.sh`. - Orchestrator: `./.claude/skills/cfn-loop-orchestration/orchestrate.sh`. - Provider routing guide: `docs/CUSTOM_PROVIDER_ROUTING.md`. - Test guides: `tests/README.md`, `tests/CLAUDE.md`, `tests/cli-mode/README.md`, `tests/docker-mode/README.md`, `tests/TEST_COVERAGE_MATRIX.md`. - CFN Loop architecture: `docs/CFN_LOOP_ARCHITECTURE.md`. - CI/CD pipeline: `docker/CI_CD_TEST_INTEGRATION.md`. - Analytics: `.artifacts/analytics/context-reduction-report.json`. ## 18) Execution Playbooks (quick recipes) - Implement feature (CLI mode): 1) `/cfn-loop-cli "Implement <feature>" --mode=standard --provider kimi` 2) Provide acceptance criteria and target paths; cite relevant docs. 3) After completion, report code paths and tests run; suggest final validation. - Debug bug (Task mode): 1) `/cfn-loop-task "Investigate bug <id>" --mode=standard` 2) Include repro steps and log paths; require root cause, fix, and tests. 3) Save output to `docs/BUG_<id>_*.md`. - Add test coverage: 1) Spawn testing-focused agent; include target modules and desired coverage. 2) Require GIVEN/WHEN/THEN style, cleanup traps, production code paths. 3) Run the relevant suite once via coordinator; collect artifacts. - Docker build verification: 1) Confirm Linux filesystem; use build script with tag. 2) Capture build command and timing; store logs if failing. 3) If failure, collect `/tmp/cfn-build` outputs and Docker logs. ## 19) Common Checks Before and After Work - Before: confirm mode (task vs CLI), provider choice, environment variables, worktree isolation, and backup path. - During: keep messages concise; avoid mixing roles; use service names; cite paths. - After: run post-edit hook; run appropriate tests; link artifacts; note backlog items. ## 20) Security and Data Handling - Redact credentials, tokens, and personal data (`[REDACTED]`). - No secrets in code, docs, tests, or environment examples. - Validate inputs (type, size, permissions) before processing. - Prefer least-privilege operations; avoid destructive commands unless explicitly requested. - Scrub task IDs or usernames in shared logs if sensitive. ## 21) Background Monitoring Pattern - For long-running tasks: execute action, `sleep <n>m`, recheck, repeat; avoid tight loops. - Capture partial logs at each check; stop on errors. - If stuck, restart via orchestrator rather than manual kills. - Clean up child processes to avoid zombies and port leaks. ## 22) Troubleshooting Quick Table - Build slow or failing: verify Linux filesystem, use build script, clean `/tmp/cfn-build`. - Redis connection issues: ensure service running, ports offset correct, service name used inside network. - Port conflicts: stop and remove containers, `docker network prune -f`, restart stack. - Post-edit hook fails for missing tools (e.g., `jq`): install dependency or rerun after adding it. - Tests flaking: rerun with `DEBUG=true`, inspect `.artifacts/logs/test-execution.log`. - Orchestrator stuck: restart via orchestration script; check Redis coordination keys for stale locks. ## 23) File and Path Conventions - Place new scripts/tests in relevant subdirectories; never in project root. - Name tests `test-*.sh`; feature docs `FEATURE_NAME.md`; bug docs `BUG_<id>_*.md`. - Use workspace-relative paths when reporting results (for example `src/app.ts:42`). - Do not use URI schemes like file:// or vscode:// in reports. ## 24) Response Formatting for Agents - Be concise and factual; bullets preferred. - Include code paths inline with backticks; add line numbers when available. - In reviews, list findings first (ordered by severity), then questions, then brief summary. - Suggest next steps when natural; number options for quick replies. - Avoid nested bullets and ANSI codes; keep headers short (1-3 words). ## 25) Validation and Gates Recap - Loop 3 gate: test pass rate must meet the mode threshold before validators start. - Loop 2 validators need access to Loop 3 outputs, tests, and logs. - Product Owner decision parsed via `.claude/skills/product-owner-decision/execute-decision.sh`. - Gate failure: iterate Loop 3 only. Gate pass: proceed to validators. - Decision outcomes: PROCEED (done), ITERATE (repeat), ABORT (stop with error). ## 26) Mode Comparison Snapshot - MVP: fast prototyping; gate >= 0.70, consensus >= 0.80; up to 5 iterations; 2 validators. - Standard: production default; gate >= 0.95, consensus >= 0.90; up to 10 iterations; 3-5 validators. - Enterprise: compliance focus; gate >= 0.98, consensus >= 0.95; up to 15 iterations; 5-7 validators. - Pick higher modes for security/compliance-sensitive tasks; expect longer runtimes but higher assurance. ## 27) Artifacts and Coverage - Test results: `.artifacts/test-results/` (per-suite archives). - Coverage: `.artifacts/coverage/` (HTML or lcov outputs). - Logs: `.artifacts/logs/` (CLI and orchestrator logs). - Runtime: `.artifacts/runtime/` (transient runtime data). - Benchmarks (if produced): `.artifacts/benchmarks/`. - Include artifact paths in reports; avoid attaching large logs inline. - For coverage regressions, note impacted modules and thresholds breached. ## 28) CI/CD Expectations - Local pre-commit recommendation: `npm test` then `./tests/cli-mode/run-all-tests.sh` then `./tests/docker-mode/run-all-implementations.sh`. - Ensure Docker daemon is available before running Docker-mode suites. - CI runs GitHub Actions for tests, coverage gates (>=80% lines/statements/functions), security scanning, and deployment. - Before merging, confirm no flaky tests and no unvetted changes to orchestration or spawning scripts. - Record any skipped tests with justification and follow-up owner. ## 29) Incident Response Notes - Capture exact command, commit hash, environment variables, and logs. - Use `[REDACTED]` when logging sensitive fields. - Prefer rollback via backup scripts rather than git reset. - If orchestration deadlocks, restart orchestrator and clear stale Redis keys scoped to the task. - File incidents or backlog items using `.claude/skills/cfn-backlog-management/add-backlog-item.sh` with cause and remediation. --- Use this trimmed guide as the default reference. For CFN-specific deep dives, defer to specialized docs or agents noted above. Keep this file lean; avoid reintroducing duplication.