moflo 4.8.24 → 4.8.26
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/browser/browser-agent.yaml +182 -182
- package/.claude/agents/core/coder.md +265 -265
- package/.claude/agents/core/planner.md +167 -167
- package/.claude/agents/core/researcher.md +189 -189
- package/.claude/agents/core/reviewer.md +325 -325
- package/.claude/agents/core/tester.md +318 -318
- package/.claude/agents/database-specialist.yaml +21 -21
- package/.claude/agents/dual-mode/codex-coordinator.md +224 -224
- package/.claude/agents/dual-mode/codex-worker.md +211 -211
- package/.claude/agents/dual-mode/dual-orchestrator.md +291 -291
- package/.claude/agents/github/code-review-swarm.md +537 -537
- package/.claude/agents/github/github-modes.md +172 -172
- package/.claude/agents/github/issue-tracker.md +318 -318
- package/.claude/agents/github/multi-repo-swarm.md +552 -552
- package/.claude/agents/github/pr-manager.md +190 -190
- package/.claude/agents/github/project-board-sync.md +508 -508
- package/.claude/agents/github/release-manager.md +366 -366
- package/.claude/agents/github/release-swarm.md +582 -582
- package/.claude/agents/github/repo-architect.md +397 -397
- package/.claude/agents/github/swarm-issue.md +572 -572
- package/.claude/agents/github/swarm-pr.md +427 -427
- package/.claude/agents/github/sync-coordinator.md +451 -451
- package/.claude/agents/github/workflow-automation.md +634 -634
- package/.claude/agents/goal/code-goal-planner.md +445 -445
- package/.claude/agents/hive-mind/collective-intelligence-coordinator.md +129 -129
- package/.claude/agents/hive-mind/queen-coordinator.md +202 -202
- package/.claude/agents/hive-mind/scout-explorer.md +241 -241
- package/.claude/agents/hive-mind/swarm-memory-manager.md +192 -192
- package/.claude/agents/hive-mind/worker-specialist.md +216 -216
- package/.claude/agents/index.yaml +17 -17
- package/.claude/agents/neural/safla-neural.md +73 -73
- package/.claude/agents/project-coordinator.yaml +15 -15
- package/.claude/agents/python-specialist.yaml +21 -21
- package/.claude/agents/reasoning/goal-planner.md +72 -72
- package/.claude/agents/security-auditor.yaml +20 -20
- package/.claude/agents/swarm/adaptive-coordinator.md +395 -395
- package/.claude/agents/swarm/hierarchical-coordinator.md +326 -326
- package/.claude/agents/swarm/mesh-coordinator.md +391 -391
- package/.claude/agents/templates/migration-plan.md +745 -745
- package/.claude/agents/typescript-specialist.yaml +21 -21
- package/.claude/checkpoints/1767754460.json +8 -8
- package/.claude/commands/agents/agent-spawning.md +28 -28
- package/.claude/commands/github/github-modes.md +146 -146
- package/.claude/commands/github/github-swarm.md +121 -121
- package/.claude/commands/github/issue-tracker.md +291 -291
- package/.claude/commands/github/pr-manager.md +169 -169
- package/.claude/commands/github/release-manager.md +337 -337
- package/.claude/commands/github/repo-architect.md +366 -366
- package/.claude/commands/github/sync-coordinator.md +300 -300
- package/.claude/commands/memory/neural.md +47 -47
- package/.claude/commands/sparc/analyzer.md +51 -51
- package/.claude/commands/sparc/architect.md +53 -53
- package/.claude/commands/sparc/ask.md +97 -97
- package/.claude/commands/sparc/batch-executor.md +54 -54
- package/.claude/commands/sparc/code.md +89 -89
- package/.claude/commands/sparc/coder.md +54 -54
- package/.claude/commands/sparc/debug.md +83 -83
- package/.claude/commands/sparc/debugger.md +54 -54
- package/.claude/commands/sparc/designer.md +53 -53
- package/.claude/commands/sparc/devops.md +109 -109
- package/.claude/commands/sparc/docs-writer.md +80 -80
- package/.claude/commands/sparc/documenter.md +54 -54
- package/.claude/commands/sparc/innovator.md +54 -54
- package/.claude/commands/sparc/integration.md +83 -83
- package/.claude/commands/sparc/mcp.md +117 -117
- package/.claude/commands/sparc/memory-manager.md +54 -54
- package/.claude/commands/sparc/optimizer.md +54 -54
- package/.claude/commands/sparc/orchestrator.md +131 -131
- package/.claude/commands/sparc/post-deployment-monitoring-mode.md +83 -83
- package/.claude/commands/sparc/refinement-optimization-mode.md +83 -83
- package/.claude/commands/sparc/researcher.md +54 -54
- package/.claude/commands/sparc/reviewer.md +54 -54
- package/.claude/commands/sparc/security-review.md +80 -80
- package/.claude/commands/sparc/sparc-modes.md +174 -174
- package/.claude/commands/sparc/sparc.md +111 -111
- package/.claude/commands/sparc/spec-pseudocode.md +80 -80
- package/.claude/commands/sparc/supabase-admin.md +348 -348
- package/.claude/commands/sparc/swarm-coordinator.md +54 -54
- package/.claude/commands/sparc/tdd.md +54 -54
- package/.claude/commands/sparc/tester.md +54 -54
- package/.claude/commands/sparc/tutorial.md +79 -79
- package/.claude/commands/sparc/workflow-manager.md +54 -54
- package/.claude/commands/sparc.md +166 -166
- package/.claude/commands/swarm/analysis.md +95 -95
- package/.claude/commands/swarm/development.md +96 -96
- package/.claude/commands/swarm/examples.md +168 -168
- package/.claude/commands/swarm/maintenance.md +102 -102
- package/.claude/commands/swarm/optimization.md +117 -117
- package/.claude/commands/swarm/research.md +136 -136
- package/.claude/commands/swarm/testing.md +131 -131
- package/.claude/commands/workflows/development.md +77 -77
- package/.claude/commands/workflows/research.md +62 -62
- package/.claude/guidance/moflo-bootstrap.md +126 -126
- package/.claude/guidance/shipped/agent-bootstrap.md +143 -131
- package/.claude/guidance/shipped/guidance-memory-strategy.md +262 -262
- package/.claude/guidance/shipped/memory-strategy.md +204 -204
- package/.claude/guidance/shipped/moflo.md +675 -668
- package/.claude/guidance/shipped/task-swarm-integration.md +441 -441
- package/.claude/helpers/intelligence.cjs +207 -207
- package/.claude/helpers/statusline.cjs +851 -851
- package/.claude/skills/fl/SKILL.md +583 -583
- package/.claude/skills/flo/SKILL.md +583 -583
- package/.claude/skills/github-code-review/SKILL.md +1140 -1140
- package/.claude/skills/github-multi-repo/SKILL.md +874 -874
- package/.claude/skills/github-project-management/SKILL.md +1277 -1277
- package/.claude/skills/github-release-management/SKILL.md +1081 -1081
- package/.claude/skills/github-workflow-automation/SKILL.md +1065 -1065
- package/.claude/skills/hive-mind-advanced/SKILL.md +712 -712
- package/.claude/skills/hooks-automation/SKILL.md +1201 -1201
- package/.claude/skills/performance-analysis/SKILL.md +563 -563
- package/.claude/skills/sparc-methodology/SKILL.md +1115 -1115
- package/.claude/skills/swarm-advanced/SKILL.md +973 -973
- package/.claude/workflow-state.json +5 -5
- package/LICENSE +21 -21
- package/README.md +685 -698
- package/bin/cli.js +0 -0
- package/bin/gate-hook.mjs +50 -50
- package/bin/gate.cjs +138 -138
- package/bin/generate-code-map.mjs +937 -775
- package/bin/hook-handler.cjs +83 -83
- package/bin/hooks.mjs +696 -656
- package/bin/index-guidance.mjs +892 -892
- package/bin/index-tests.mjs +709 -709
- package/bin/lib/process-manager.mjs +256 -243
- package/bin/lib/registry-cleanup.cjs +41 -41
- package/bin/prompt-hook.mjs +72 -72
- package/bin/semantic-search.mjs +472 -472
- package/bin/session-start-launcher.mjs +238 -238
- package/bin/setup-project.mjs +250 -252
- package/package.json +123 -123
- package/src/@claude-flow/cli/README.md +452 -452
- package/src/@claude-flow/cli/bin/cli.js +180 -180
- package/src/@claude-flow/cli/bin/preinstall.cjs +2 -2
- package/src/@claude-flow/cli/dist/src/commands/completions.js +409 -409
- package/src/@claude-flow/cli/dist/src/commands/doctor.js +2 -18
- package/src/@claude-flow/cli/dist/src/commands/embeddings.js +25 -25
- package/src/@claude-flow/cli/dist/src/commands/github.js +61 -61
- package/src/@claude-flow/cli/dist/src/commands/hive-mind.js +90 -90
- package/src/@claude-flow/cli/dist/src/commands/hooks.js +9 -9
- package/src/@claude-flow/cli/dist/src/commands/init.js +8 -3
- package/src/@claude-flow/cli/dist/src/commands/ruvector/import.js +14 -14
- package/src/@claude-flow/cli/dist/src/commands/ruvector/setup.js +624 -624
- package/src/@claude-flow/cli/dist/src/config/moflo-config.d.ts +0 -3
- package/src/@claude-flow/cli/dist/src/config/moflo-config.js +91 -101
- package/src/@claude-flow/cli/dist/src/index.d.ts +0 -5
- package/src/@claude-flow/cli/dist/src/index.js +0 -44
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.d.ts +29 -29
- package/src/@claude-flow/cli/dist/src/init/claudemd-generator.js +43 -45
- package/src/@claude-flow/cli/dist/src/init/executor.js +453 -453
- package/src/@claude-flow/cli/dist/src/init/helpers-generator.js +482 -482
- package/src/@claude-flow/cli/dist/src/init/moflo-init.d.ts +30 -30
- package/src/@claude-flow/cli/dist/src/init/moflo-init.js +144 -200
- package/src/@claude-flow/cli/dist/src/init/statusline-generator.js +876 -876
- package/src/@claude-flow/cli/dist/src/mcp-tools/hooks-tools.js +11 -5
- package/src/@claude-flow/cli/dist/src/memory/memory-initializer.js +371 -371
- package/src/@claude-flow/cli/dist/src/runtime/headless.js +28 -28
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.d.ts +0 -14
- package/src/@claude-flow/cli/dist/src/services/daemon-lock.js +1 -1
- package/src/@claude-flow/cli/dist/src/services/headless-worker-executor.js +84 -84
- package/src/@claude-flow/cli/package.json +1 -1
- package/src/@claude-flow/guidance/README.md +1195 -1195
- package/src/@claude-flow/guidance/package.json +198 -198
- package/src/@claude-flow/memory/README.md +587 -587
- package/src/@claude-flow/memory/dist/agentdb-backend.js +26 -26
- package/src/@claude-flow/memory/dist/auto-memory-bridge.test.js +27 -27
- package/src/@claude-flow/memory/dist/sqljs-backend.js +26 -26
- package/src/@claude-flow/memory/package.json +44 -44
- package/src/@claude-flow/shared/README.md +323 -323
- package/src/@claude-flow/shared/dist/events/event-store.js +31 -31
- package/src/README.md +493 -493
- package/.claude/agents/flow-nexus/app-store.md +0 -88
- package/.claude/agents/flow-nexus/authentication.md +0 -69
- package/.claude/agents/flow-nexus/challenges.md +0 -81
- package/.claude/agents/flow-nexus/neural-network.md +0 -88
- package/.claude/agents/flow-nexus/payments.md +0 -83
- package/.claude/agents/flow-nexus/sandbox.md +0 -76
- package/.claude/agents/flow-nexus/swarm.md +0 -76
- package/.claude/agents/flow-nexus/user-tools.md +0 -96
- package/.claude/agents/flow-nexus/workflow.md +0 -84
- package/.claude/agents/payments/agentic-payments.md +0 -126
- package/.claude/agents/sona/sona-learning-optimizer.md +0 -74
- package/.claude/agents/sublinear/consensus-coordinator.md +0 -338
- package/.claude/agents/sublinear/matrix-optimizer.md +0 -185
- package/.claude/agents/sublinear/pagerank-analyzer.md +0 -299
- package/.claude/agents/sublinear/performance-optimizer.md +0 -368
- package/.claude/agents/sublinear/trading-predictor.md +0 -246
- package/.claude/agents/v3/adr-architect.md +0 -184
- package/.claude/agents/v3/aidefence-guardian.md +0 -282
- package/.claude/agents/v3/claims-authorizer.md +0 -208
- package/.claude/agents/v3/collective-intelligence-coordinator.md +0 -993
- package/.claude/agents/v3/ddd-domain-expert.md +0 -220
- package/.claude/agents/v3/injection-analyst.md +0 -236
- package/.claude/agents/v3/memory-specialist.md +0 -995
- package/.claude/agents/v3/performance-engineer.md +0 -1233
- package/.claude/agents/v3/pii-detector.md +0 -151
- package/.claude/agents/v3/reasoningbank-learner.md +0 -213
- package/.claude/agents/v3/security-architect-aidefence.md +0 -410
- package/.claude/agents/v3/security-architect.md +0 -867
- package/.claude/agents/v3/security-auditor.md +0 -771
- package/.claude/agents/v3/sparc-orchestrator.md +0 -182
- package/.claude/agents/v3/swarm-memory-manager.md +0 -157
- package/.claude/agents/v3/v3-integration-architect.md +0 -205
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/analysis/README.md +0 -9
- package/.claude/commands/analysis/bottleneck-detect.md +0 -162
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/analysis/performance-report.md +0 -25
- package/.claude/commands/analysis/token-efficiency.md +0 -45
- package/.claude/commands/analysis/token-usage.md +0 -25
- package/.claude/commands/automation/README.md +0 -9
- package/.claude/commands/automation/auto-agent.md +0 -122
- package/.claude/commands/automation/self-healing.md +0 -106
- package/.claude/commands/automation/session-memory.md +0 -90
- package/.claude/commands/automation/smart-agents.md +0 -73
- package/.claude/commands/automation/smart-spawn.md +0 -25
- package/.claude/commands/automation/workflow-select.md +0 -25
- package/.claude/commands/monitoring/README.md +0 -9
- package/.claude/commands/monitoring/agent-metrics.md +0 -25
- package/.claude/commands/monitoring/agents.md +0 -44
- package/.claude/commands/monitoring/real-time-view.md +0 -25
- package/.claude/commands/monitoring/status.md +0 -46
- package/.claude/commands/monitoring/swarm-monitor.md +0 -25
- package/.claude/commands/optimization/README.md +0 -9
- package/.claude/commands/optimization/auto-topology.md +0 -62
- package/.claude/commands/optimization/cache-manage.md +0 -25
- package/.claude/commands/optimization/parallel-execute.md +0 -25
- package/.claude/commands/optimization/parallel-execution.md +0 -50
- package/.claude/commands/optimization/topology-optimize.md +0 -25
- package/.claude/guidance/shipped/task-icons.md +0 -42
- package/.claude/helpers/gate-hook.mjs +0 -50
- package/.claude/helpers/gate.cjs +0 -138
- package/.claude/helpers/hook-handler.cjs +0 -76
- package/.claude/helpers/prompt-hook.mjs +0 -72
- package/.claude/scripts/build-embeddings.mjs +0 -549
- package/.claude/scripts/generate-code-map.mjs +0 -776
- package/.claude/scripts/hooks.mjs +0 -656
- package/.claude/scripts/index-guidance.mjs +0 -893
- package/.claude/scripts/index-tests.mjs +0 -710
- package/.claude/scripts/semantic-search.mjs +0 -473
- package/.claude/scripts/session-start-launcher.mjs +0 -238
- package/.claude/settings.local.json +0 -18
- package/.claude/skills/pair-programming/SKILL.md +0 -1202
- package/.claude/skills/stream-chain/SKILL.md +0 -563
- package/.claude/skills/v3-cli-modernization/SKILL.md +0 -872
- package/.claude/skills/v3-core-implementation/SKILL.md +0 -797
- package/.claude/skills/v3-ddd-architecture/SKILL.md +0 -442
- package/.claude/skills/v3-integration-deep/SKILL.md +0 -241
- package/.claude/skills/v3-mcp-optimization/SKILL.md +0 -777
- package/.claude/skills/v3-memory-unification/SKILL.md +0 -174
- package/.claude/skills/v3-performance-optimization/SKILL.md +0 -390
- package/.claude/skills/v3-security-overhaul/SKILL.md +0 -82
- package/.claude/skills/v3-swarm-coordination/SKILL.md +0 -340
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.d.ts +0 -197
- package/src/@claude-flow/cli/dist/src/services/container-worker-pool.js +0 -584
- package/src/@claude-flow/memory/dist/hybrid-backend.d.ts +0 -245
- package/src/@claude-flow/memory/dist/hybrid-backend.js +0 -569
- package/src/@claude-flow/memory/dist/hybrid-backend.test.d.ts +0 -8
- package/src/@claude-flow/memory/dist/hybrid-backend.test.js +0 -320
- package/src/@claude-flow/memory/dist/sqlite-backend.d.ts +0 -121
- package/src/@claude-flow/memory/dist/sqlite-backend.js +0 -572
|
@@ -1,31 +1,31 @@
|
|
|
1
|
-
export interface MofloInitOptions {
|
|
2
|
-
projectRoot: string;
|
|
3
|
-
force?: boolean;
|
|
4
|
-
skipIndex?: boolean;
|
|
5
|
-
interactive?: boolean;
|
|
6
|
-
minimal?: boolean;
|
|
7
|
-
}
|
|
8
|
-
export interface MofloInitAnswers {
|
|
9
|
-
guidance: boolean;
|
|
10
|
-
guidanceDirs: string[];
|
|
11
|
-
codeMap: boolean;
|
|
12
|
-
srcDirs: string[];
|
|
13
|
-
tests: boolean;
|
|
14
|
-
testDirs: string[];
|
|
15
|
-
gates: boolean;
|
|
16
|
-
stopHook: boolean;
|
|
17
|
-
}
|
|
18
|
-
export interface MofloInitResult {
|
|
19
|
-
steps: {
|
|
20
|
-
name: string;
|
|
21
|
-
status: 'created' | 'updated' | 'skipped' | 'error';
|
|
22
|
-
detail?: string;
|
|
23
|
-
}[];
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Discover test directories by checking common locations and walking for
|
|
27
|
-
* colocated __tests__ dirs. Returns relative paths.
|
|
28
|
-
*/
|
|
29
|
-
export declare function discoverTestDirs(root: string): string[];
|
|
30
|
-
export declare function initMoflo(options: MofloInitOptions): Promise<MofloInitResult>;
|
|
1
|
+
export interface MofloInitOptions {
|
|
2
|
+
projectRoot: string;
|
|
3
|
+
force?: boolean;
|
|
4
|
+
skipIndex?: boolean;
|
|
5
|
+
interactive?: boolean;
|
|
6
|
+
minimal?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export interface MofloInitAnswers {
|
|
9
|
+
guidance: boolean;
|
|
10
|
+
guidanceDirs: string[];
|
|
11
|
+
codeMap: boolean;
|
|
12
|
+
srcDirs: string[];
|
|
13
|
+
tests: boolean;
|
|
14
|
+
testDirs: string[];
|
|
15
|
+
gates: boolean;
|
|
16
|
+
stopHook: boolean;
|
|
17
|
+
}
|
|
18
|
+
export interface MofloInitResult {
|
|
19
|
+
steps: {
|
|
20
|
+
name: string;
|
|
21
|
+
status: 'created' | 'updated' | 'skipped' | 'error';
|
|
22
|
+
detail?: string;
|
|
23
|
+
}[];
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Discover test directories by checking common locations and walking for
|
|
27
|
+
* colocated __tests__ dirs. Returns relative paths.
|
|
28
|
+
*/
|
|
29
|
+
export declare function discoverTestDirs(root: string): string[];
|
|
30
|
+
export declare function initMoflo(options: MofloInitOptions): Promise<MofloInitResult>;
|
|
31
31
|
//# sourceMappingURL=moflo-init.d.ts.map
|
|
@@ -241,8 +241,6 @@ export async function initMoflo(options) {
|
|
|
241
241
|
steps.push(updateGitignore(projectRoot));
|
|
242
242
|
// Step 7: .claude/guidance/moflo-bootstrap.md (subagent bootstrap protocol)
|
|
243
243
|
steps.push(syncBootstrapGuidance(projectRoot, force));
|
|
244
|
-
// Step 8: Sync ALL shipped guidance docs from moflo to project
|
|
245
|
-
steps.push(...syncAllShippedGuidance(projectRoot, force));
|
|
246
244
|
return { steps };
|
|
247
245
|
}
|
|
248
246
|
// ============================================================================
|
|
@@ -272,102 +270,102 @@ function generateConfig(root, force, answers) {
|
|
|
272
270
|
const detectedExts = extensions.size > 0
|
|
273
271
|
? [...extensions].sort()
|
|
274
272
|
: ['.ts', '.tsx', '.js', '.jsx'];
|
|
275
|
-
const yaml = `# MoFlo — Project Configuration
|
|
276
|
-
# Generated by: moflo init
|
|
277
|
-
# Docs: https://github.com/eric-cielo/moflo
|
|
278
|
-
|
|
279
|
-
project:
|
|
280
|
-
name: "${projectName}"
|
|
281
|
-
|
|
282
|
-
# Guidance/knowledge docs to index for semantic search
|
|
283
|
-
guidance:
|
|
284
|
-
directories:
|
|
285
|
-
${guidanceDirs.map(d => ` - ${d}`).join('\n')}
|
|
286
|
-
namespace: guidance
|
|
287
|
-
|
|
288
|
-
# Source directories for code navigation map
|
|
289
|
-
code_map:
|
|
290
|
-
directories:
|
|
291
|
-
${srcDirs.map(d => ` - ${d}`).join('\n')}
|
|
292
|
-
extensions: [${detectedExts.map(e => `"${e}"`).join(', ')}]
|
|
293
|
-
exclude: [node_modules, dist, .next, coverage, build, __pycache__, target, .git]
|
|
294
|
-
namespace: code-map
|
|
295
|
-
|
|
296
|
-
# Test file discovery and indexing
|
|
297
|
-
tests:
|
|
298
|
-
directories:
|
|
299
|
-
${testDirs.map(d => ` - ${d}`).join('\n')}
|
|
300
|
-
patterns: ["*.test.*", "*.spec.*", "*.test-*"]
|
|
301
|
-
extensions: [".ts", ".tsx", ".js", ".jsx"]
|
|
302
|
-
exclude: [node_modules, coverage, dist]
|
|
303
|
-
namespace: tests
|
|
304
|
-
|
|
305
|
-
# Workflow gates (enforced via Claude Code hooks)
|
|
306
|
-
gates:
|
|
307
|
-
memory_first: ${gatesEnabled}
|
|
308
|
-
task_create_first: ${gatesEnabled}
|
|
309
|
-
context_tracking: ${gatesEnabled}
|
|
310
|
-
|
|
311
|
-
# Auto-index on session start
|
|
312
|
-
auto_index:
|
|
313
|
-
guidance: ${answers?.guidance ?? true}
|
|
314
|
-
code_map: ${answers?.codeMap ?? true}
|
|
315
|
-
tests: ${answers?.tests ?? true}
|
|
316
|
-
|
|
317
|
-
# Memory backend
|
|
318
|
-
memory:
|
|
319
|
-
backend: sql.js
|
|
320
|
-
embedding_model: Xenova/all-MiniLM-L6-v2
|
|
321
|
-
namespace: default
|
|
322
|
-
|
|
323
|
-
# Hook toggles (all on by default — disable to slim down)
|
|
324
|
-
hooks:
|
|
325
|
-
pre_edit: true # Track file edits for learning
|
|
326
|
-
post_edit: true # Record edit outcomes, train neural patterns
|
|
327
|
-
pre_task: true # Get agent routing before task spawn
|
|
328
|
-
post_task: true # Record task results for learning
|
|
329
|
-
gate: ${gatesEnabled} # Workflow gate enforcement (memory-first, task-create-first)
|
|
330
|
-
route: true # Intelligent task routing on each prompt
|
|
331
|
-
stop_hook: ${answers?.stopHook ?? true} # Session-end persistence and metric export
|
|
332
|
-
session_restore: true # Restore session state on start
|
|
333
|
-
notification: true # Hook into Claude Code notifications
|
|
334
|
-
|
|
335
|
-
# MCP server options
|
|
336
|
-
mcp:
|
|
337
|
-
tool_defer: deferred # Defer 150+ tool schemas; loaded on demand via ToolSearch
|
|
338
|
-
auto_start: false # Auto-start MCP server on session begin
|
|
339
|
-
|
|
340
|
-
# Status line display (shown at bottom of Claude Code)
|
|
341
|
-
# mode: "compact" (default), "single-line", or "dashboard" (full multi-line)
|
|
342
|
-
status_line:
|
|
343
|
-
enabled: true
|
|
344
|
-
mode: compact
|
|
345
|
-
branding: "MoFlo V4"
|
|
346
|
-
show_git: true
|
|
347
|
-
show_session: true
|
|
348
|
-
show_swarm: true
|
|
349
|
-
show_agentdb: true
|
|
350
|
-
show_mcp: true
|
|
351
|
-
|
|
352
|
-
# Model preferences (haiku, sonnet, opus)
|
|
353
|
-
models:
|
|
354
|
-
default: opus # Model for general tasks
|
|
355
|
-
research: sonnet # Model for research/exploration agents
|
|
356
|
-
review: opus # Model for code review agents
|
|
357
|
-
test: sonnet # Model for test-writing agents
|
|
358
|
-
|
|
359
|
-
# Intelligent model routing (auto-selects haiku/sonnet/opus per task)
|
|
360
|
-
# When enabled, overrides the static model preferences above
|
|
361
|
-
# by analyzing task complexity and routing to the cheapest capable model.
|
|
362
|
-
model_routing:
|
|
363
|
-
enabled: false # Set to true to enable dynamic routing
|
|
364
|
-
confidence_threshold: 0.85 # Min confidence before escalating to a more capable model
|
|
365
|
-
cost_optimization: true # Prefer cheaper models when confidence is high
|
|
366
|
-
circuit_breaker: true # Penalize models that fail repeatedly
|
|
367
|
-
# Per-agent overrides (set to "inherit" to use routing, or a specific model to pin)
|
|
368
|
-
# agent_overrides:
|
|
369
|
-
# security-architect: opus # Always use opus for security
|
|
370
|
-
# researcher: sonnet # Pin research to sonnet
|
|
273
|
+
const yaml = `# MoFlo — Project Configuration
|
|
274
|
+
# Generated by: moflo init
|
|
275
|
+
# Docs: https://github.com/eric-cielo/moflo
|
|
276
|
+
|
|
277
|
+
project:
|
|
278
|
+
name: "${projectName}"
|
|
279
|
+
|
|
280
|
+
# Guidance/knowledge docs to index for semantic search
|
|
281
|
+
guidance:
|
|
282
|
+
directories:
|
|
283
|
+
${guidanceDirs.map(d => ` - ${d}`).join('\n')}
|
|
284
|
+
namespace: guidance
|
|
285
|
+
|
|
286
|
+
# Source directories for code navigation map
|
|
287
|
+
code_map:
|
|
288
|
+
directories:
|
|
289
|
+
${srcDirs.map(d => ` - ${d}`).join('\n')}
|
|
290
|
+
extensions: [${detectedExts.map(e => `"${e}"`).join(', ')}]
|
|
291
|
+
exclude: [node_modules, dist, .next, coverage, build, __pycache__, target, .git]
|
|
292
|
+
namespace: code-map
|
|
293
|
+
|
|
294
|
+
# Test file discovery and indexing
|
|
295
|
+
tests:
|
|
296
|
+
directories:
|
|
297
|
+
${testDirs.map(d => ` - ${d}`).join('\n')}
|
|
298
|
+
patterns: ["*.test.*", "*.spec.*", "*.test-*"]
|
|
299
|
+
extensions: [".ts", ".tsx", ".js", ".jsx"]
|
|
300
|
+
exclude: [node_modules, coverage, dist]
|
|
301
|
+
namespace: tests
|
|
302
|
+
|
|
303
|
+
# Workflow gates (enforced via Claude Code hooks)
|
|
304
|
+
gates:
|
|
305
|
+
memory_first: ${gatesEnabled}
|
|
306
|
+
task_create_first: ${gatesEnabled}
|
|
307
|
+
context_tracking: ${gatesEnabled}
|
|
308
|
+
|
|
309
|
+
# Auto-index on session start
|
|
310
|
+
auto_index:
|
|
311
|
+
guidance: ${answers?.guidance ?? true}
|
|
312
|
+
code_map: ${answers?.codeMap ?? true}
|
|
313
|
+
tests: ${answers?.tests ?? true}
|
|
314
|
+
|
|
315
|
+
# Memory backend
|
|
316
|
+
memory:
|
|
317
|
+
backend: sql.js
|
|
318
|
+
embedding_model: Xenova/all-MiniLM-L6-v2
|
|
319
|
+
namespace: default
|
|
320
|
+
|
|
321
|
+
# Hook toggles (all on by default — disable to slim down)
|
|
322
|
+
hooks:
|
|
323
|
+
pre_edit: true # Track file edits for learning
|
|
324
|
+
post_edit: true # Record edit outcomes, train neural patterns
|
|
325
|
+
pre_task: true # Get agent routing before task spawn
|
|
326
|
+
post_task: true # Record task results for learning
|
|
327
|
+
gate: ${gatesEnabled} # Workflow gate enforcement (memory-first, task-create-first)
|
|
328
|
+
route: true # Intelligent task routing on each prompt
|
|
329
|
+
stop_hook: ${answers?.stopHook ?? true} # Session-end persistence and metric export
|
|
330
|
+
session_restore: true # Restore session state on start
|
|
331
|
+
notification: true # Hook into Claude Code notifications
|
|
332
|
+
|
|
333
|
+
# MCP server options
|
|
334
|
+
mcp:
|
|
335
|
+
tool_defer: deferred # Defer 150+ tool schemas; loaded on demand via ToolSearch
|
|
336
|
+
auto_start: false # Auto-start MCP server on session begin
|
|
337
|
+
|
|
338
|
+
# Status line display (shown at bottom of Claude Code)
|
|
339
|
+
# mode: "compact" (default), "single-line", or "dashboard" (full multi-line)
|
|
340
|
+
status_line:
|
|
341
|
+
enabled: true
|
|
342
|
+
mode: compact
|
|
343
|
+
branding: "MoFlo V4"
|
|
344
|
+
show_git: true
|
|
345
|
+
show_session: true
|
|
346
|
+
show_swarm: true
|
|
347
|
+
show_agentdb: true
|
|
348
|
+
show_mcp: true
|
|
349
|
+
|
|
350
|
+
# Model preferences (haiku, sonnet, opus)
|
|
351
|
+
models:
|
|
352
|
+
default: opus # Model for general tasks
|
|
353
|
+
research: sonnet # Model for research/exploration agents
|
|
354
|
+
review: opus # Model for code review agents
|
|
355
|
+
test: sonnet # Model for test-writing agents
|
|
356
|
+
|
|
357
|
+
# Intelligent model routing (auto-selects haiku/sonnet/opus per task)
|
|
358
|
+
# When enabled, overrides the static model preferences above
|
|
359
|
+
# by analyzing task complexity and routing to the cheapest capable model.
|
|
360
|
+
model_routing:
|
|
361
|
+
enabled: false # Set to true to enable dynamic routing
|
|
362
|
+
confidence_threshold: 0.85 # Min confidence before escalating to a more capable model
|
|
363
|
+
cost_optimization: true # Prefer cheaper models when confidence is high
|
|
364
|
+
circuit_breaker: true # Penalize models that fail repeatedly
|
|
365
|
+
# Per-agent overrides (set to "inherit" to use routing, or a specific model to pin)
|
|
366
|
+
# agent_overrides:
|
|
367
|
+
# security-architect: opus # Always use opus for security
|
|
368
|
+
# researcher: sonnet # Pin research to sonnet
|
|
371
369
|
`;
|
|
372
370
|
fs.writeFileSync(configPath, yaml, 'utf-8');
|
|
373
371
|
return { name: 'moflo.yaml', status: 'created', detail: `Detected: ${srcDirs.join(', ')} | ${detectedExts.join(', ')}` };
|
|
@@ -647,8 +645,10 @@ function generateClaudeMd(root, force) {
|
|
|
647
645
|
const allEndMarkers = [MOFLO_MARKER_END, ...LEGACY_MARKERS_END];
|
|
648
646
|
for (let i = 0; i < allStartMarkers.length; i++) {
|
|
649
647
|
if (existing.includes(allStartMarkers[i])) {
|
|
650
|
-
|
|
651
|
-
|
|
648
|
+
if (!force && allStartMarkers[i] === MOFLO_MARKER) {
|
|
649
|
+
return { name: 'CLAUDE.md', status: 'skipped', detail: 'MoFlo section already present' };
|
|
650
|
+
}
|
|
651
|
+
// Remove existing section for replacement
|
|
652
652
|
const startIdx = existing.indexOf(allStartMarkers[i]);
|
|
653
653
|
const endIdx = existing.indexOf(allEndMarkers[i]);
|
|
654
654
|
if (endIdx > startIdx) {
|
|
@@ -659,51 +659,50 @@ function generateClaudeMd(root, force) {
|
|
|
659
659
|
}
|
|
660
660
|
// Minimal injection — just enough for Claude to work with moflo.
|
|
661
661
|
// All detailed docs live in .claude/guidance/shipped/moflo.md.
|
|
662
|
-
const mofloSection = `
|
|
663
|
-
${MOFLO_MARKER}
|
|
664
|
-
## MoFlo — AI Agent Orchestration
|
|
665
|
-
|
|
666
|
-
This project uses [MoFlo](https://github.com/eric-cielo/moflo) for AI-assisted development workflows.
|
|
667
|
-
|
|
668
|
-
### FIRST ACTION ON EVERY PROMPT: Search Memory
|
|
669
|
-
|
|
670
|
-
Your first tool call for every new user prompt MUST be a memory search. Do this BEFORE Glob, Grep, Read, or any file exploration.
|
|
671
|
-
|
|
672
|
-
\`\`\`
|
|
673
|
-
mcp__moflo__memory_search — query: "<task description>", namespace: "guidance" or "patterns" or "code-map"
|
|
674
|
-
\`\`\`
|
|
675
|
-
|
|
676
|
-
Search \`guidance\` and \`patterns\` namespaces on every prompt. Search \`code-map\` when navigating the codebase.
|
|
677
|
-
When the user asks you to remember something: \`mcp__moflo__memory_store\` with namespace \`knowledge\`.
|
|
678
|
-
|
|
679
|
-
### Workflow Gates (enforced automatically)
|
|
680
|
-
|
|
681
|
-
- **Memory-first**: Must search memory before Glob/Grep/Read
|
|
682
|
-
- **TaskCreate-first**: Must call TaskCreate before spawning Agent tool
|
|
683
|
-
|
|
684
|
-
|
|
685
|
-
|
|
686
|
-
|
|
687
|
-
|
|
688
|
-
|
|
689
|
-
| \`
|
|
690
|
-
| \`
|
|
691
|
-
| \`
|
|
692
|
-
| \`
|
|
693
|
-
|
|
694
|
-
|
|
695
|
-
|
|
696
|
-
|
|
697
|
-
|
|
698
|
-
npx flo
|
|
699
|
-
|
|
700
|
-
|
|
701
|
-
|
|
702
|
-
|
|
703
|
-
|
|
704
|
-
|
|
705
|
-
|
|
706
|
-
${MOFLO_MARKER_END}
|
|
662
|
+
const mofloSection = `
|
|
663
|
+
${MOFLO_MARKER}
|
|
664
|
+
## MoFlo — AI Agent Orchestration
|
|
665
|
+
|
|
666
|
+
This project uses [MoFlo](https://github.com/eric-cielo/moflo) for AI-assisted development workflows.
|
|
667
|
+
|
|
668
|
+
### FIRST ACTION ON EVERY PROMPT: Search Memory
|
|
669
|
+
|
|
670
|
+
Your first tool call for every new user prompt MUST be a memory search. Do this BEFORE Glob, Grep, Read, or any file exploration.
|
|
671
|
+
|
|
672
|
+
\`\`\`
|
|
673
|
+
mcp__moflo__memory_search — query: "<task description>", namespace: "guidance" or "patterns" or "code-map"
|
|
674
|
+
\`\`\`
|
|
675
|
+
|
|
676
|
+
Search \`guidance\` and \`patterns\` namespaces on every prompt. Search \`code-map\` when navigating the codebase.
|
|
677
|
+
When the user asks you to remember something: \`mcp__moflo__memory_store\` with namespace \`knowledge\`.
|
|
678
|
+
|
|
679
|
+
### Workflow Gates (enforced automatically)
|
|
680
|
+
|
|
681
|
+
- **Memory-first**: Must search memory before Glob/Grep/Read
|
|
682
|
+
- **TaskCreate-first**: Must call TaskCreate before spawning Agent tool
|
|
683
|
+
|
|
684
|
+
### MCP Tools (preferred over CLI)
|
|
685
|
+
|
|
686
|
+
| Tool | Purpose |
|
|
687
|
+
|------|---------|
|
|
688
|
+
| \`mcp__moflo__memory_search\` | Semantic search across indexed knowledge |
|
|
689
|
+
| \`mcp__moflo__memory_store\` | Store patterns and decisions |
|
|
690
|
+
| \`mcp__moflo__hooks_route\` | Route task to optimal agent type |
|
|
691
|
+
| \`mcp__moflo__hooks_pre-task\` | Record task start |
|
|
692
|
+
| \`mcp__moflo__hooks_post-task\` | Record task completion for learning |
|
|
693
|
+
|
|
694
|
+
### CLI Fallback
|
|
695
|
+
|
|
696
|
+
\`\`\`bash
|
|
697
|
+
npx flo-search "[query]" --namespace guidance # Semantic search
|
|
698
|
+
npx flo doctor --fix # Health check
|
|
699
|
+
\`\`\`
|
|
700
|
+
|
|
701
|
+
### Full Reference
|
|
702
|
+
|
|
703
|
+
For CLI commands, hooks, agents, swarm config, memory commands, and moflo.yaml options, see:
|
|
704
|
+
\`.claude/guidance/shipped/moflo.md\`
|
|
705
|
+
${MOFLO_MARKER_END}
|
|
707
706
|
`;
|
|
708
707
|
const finalContent = existing.trimEnd() + '\n' + mofloSection;
|
|
709
708
|
fs.writeFileSync(claudeMdPath, finalContent, 'utf-8');
|
|
@@ -847,59 +846,4 @@ function syncBootstrapGuidance(root, force) {
|
|
|
847
846
|
detail: 'Subagent bootstrap protocol'
|
|
848
847
|
};
|
|
849
848
|
}
|
|
850
|
-
// ============================================================================
|
|
851
|
-
// Step 8: Sync ALL shipped guidance docs
|
|
852
|
-
// Discovers all .md files in moflo/.claude/guidance/shipped/ and copies them
|
|
853
|
-
// to project .claude/guidance/. Skips agent-bootstrap.md (handled by Step 7).
|
|
854
|
-
// ============================================================================
|
|
855
|
-
function syncAllShippedGuidance(root, force) {
|
|
856
|
-
const guidanceDir = path.join(root, '.claude', 'guidance');
|
|
857
|
-
let sourceDir;
|
|
858
|
-
try {
|
|
859
|
-
sourceDir = path.dirname(fileURLToPath(import.meta.url));
|
|
860
|
-
}
|
|
861
|
-
catch {
|
|
862
|
-
sourceDir = typeof __dirname !== 'undefined' ? __dirname : '';
|
|
863
|
-
}
|
|
864
|
-
// Find the shipped guidance directory
|
|
865
|
-
const shippedCandidates = [
|
|
866
|
-
path.join(root, 'node_modules', 'moflo', '.claude', 'guidance', 'shipped'),
|
|
867
|
-
...(sourceDir ? [path.join(sourceDir, '..', '..', '..', '..', '.claude', 'guidance', 'shipped')] : []),
|
|
868
|
-
];
|
|
869
|
-
const shippedDir = shippedCandidates.find(d => { try {
|
|
870
|
-
return fs.existsSync(d) && fs.statSync(d).isDirectory();
|
|
871
|
-
}
|
|
872
|
-
catch {
|
|
873
|
-
return false;
|
|
874
|
-
} });
|
|
875
|
-
if (!shippedDir) {
|
|
876
|
-
return [{ name: 'guidance/shipped/*', status: 'skipped', detail: 'Shipped guidance directory not found' }];
|
|
877
|
-
}
|
|
878
|
-
// Discover all .md files, skip agent-bootstrap.md (synced separately as moflo-bootstrap.md)
|
|
879
|
-
const files = fs.readdirSync(shippedDir).filter(f => f.endsWith('.md') && f !== 'agent-bootstrap.md');
|
|
880
|
-
if (files.length === 0) {
|
|
881
|
-
return [{ name: 'guidance/shipped/*', status: 'skipped', detail: 'No shipped guidance files found' }];
|
|
882
|
-
}
|
|
883
|
-
const results = [];
|
|
884
|
-
for (const filename of files) {
|
|
885
|
-
const sourceFile = path.join(shippedDir, filename);
|
|
886
|
-
const targetFile = path.join(guidanceDir, filename);
|
|
887
|
-
if (fs.existsSync(targetFile) && !force) {
|
|
888
|
-
if (!isStale(sourceFile, targetFile)) {
|
|
889
|
-
results.push({ name: `guidance/${filename}`, status: 'skipped', detail: 'Already up to date' });
|
|
890
|
-
continue;
|
|
891
|
-
}
|
|
892
|
-
}
|
|
893
|
-
const content = fs.readFileSync(sourceFile, 'utf-8');
|
|
894
|
-
const header = `<!-- AUTO-GENERATED by moflo init. Do not edit — changes will be overwritten on next init. -->\n<!-- Source: moflo/.claude/guidance/shipped/${filename} -->\n\n`;
|
|
895
|
-
fs.mkdirSync(guidanceDir, { recursive: true });
|
|
896
|
-
fs.writeFileSync(targetFile, header + content, 'utf-8');
|
|
897
|
-
results.push({
|
|
898
|
-
name: `guidance/${filename}`,
|
|
899
|
-
status: 'updated',
|
|
900
|
-
detail: `Shipped guidance synced`,
|
|
901
|
-
});
|
|
902
|
-
}
|
|
903
|
-
return results;
|
|
904
|
-
}
|
|
905
849
|
//# sourceMappingURL=moflo-init.js.map
|