feed-the-machine 1.6.0 → 1.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -21
- package/README.md +170 -170
- package/bin/brain.py +1340 -0
- package/bin/convert_claude_skills_to_codex.py +490 -0
- package/bin/generate-manifest.mjs +463 -463
- package/bin/harden_codex_skills.py +141 -0
- package/bin/install.mjs +491 -491
- package/bin/migrate-eng-buddy-data.py +875 -0
- package/bin/playbook_engine/__init__.py +1 -0
- package/bin/playbook_engine/conftest.py +8 -0
- package/bin/playbook_engine/extractor.py +33 -0
- package/bin/playbook_engine/manager.py +102 -0
- package/bin/playbook_engine/models.py +84 -0
- package/bin/playbook_engine/registry.py +35 -0
- package/bin/playbook_engine/test_extractor.py +72 -0
- package/bin/playbook_engine/test_integration.py +129 -0
- package/bin/playbook_engine/test_manager.py +85 -0
- package/bin/playbook_engine/test_models.py +166 -0
- package/bin/playbook_engine/test_registry.py +67 -0
- package/bin/playbook_engine/test_tracer.py +86 -0
- package/bin/playbook_engine/tracer.py +93 -0
- package/bin/tasks_db.py +456 -0
- package/docs/HOOKS.md +243 -243
- package/docs/INBOX.md +233 -233
- package/ftm/SKILL.md +125 -122
- package/ftm-audit/SKILL.md +623 -623
- package/ftm-audit/references/protocols/PROJECT-PATTERNS.md +91 -91
- package/ftm-audit/references/protocols/RUNTIME-WIRING.md +66 -66
- package/ftm-audit/references/protocols/WIRING-CONTRACTS.md +135 -135
- package/ftm-audit/references/strategies/AUTO-FIX-STRATEGIES.md +69 -69
- package/ftm-audit/references/templates/REPORT-FORMAT.md +96 -96
- package/ftm-audit/scripts/run-knip.sh +23 -23
- package/ftm-audit.yml +2 -2
- package/ftm-brainstorm/SKILL.md +1003 -498
- package/ftm-brainstorm/evals/evals.json +180 -100
- package/ftm-brainstorm/evals/promptfoo.yaml +109 -109
- package/ftm-brainstorm/references/agent-prompts.md +552 -224
- package/ftm-brainstorm/references/plan-template.md +209 -121
- package/ftm-brainstorm.yml +2 -2
- package/ftm-browse/SKILL.md +454 -454
- package/ftm-browse/daemon/browser-manager.ts +206 -206
- package/ftm-browse/daemon/bun.lock +30 -30
- package/ftm-browse/daemon/cli.ts +347 -347
- package/ftm-browse/daemon/commands.ts +410 -410
- package/ftm-browse/daemon/main.ts +357 -357
- package/ftm-browse/daemon/package.json +17 -17
- package/ftm-browse/daemon/server.ts +189 -189
- package/ftm-browse/daemon/snapshot.ts +519 -519
- package/ftm-browse/daemon/tsconfig.json +22 -22
- package/ftm-browse.yml +4 -4
- package/ftm-capture/SKILL.md +370 -370
- package/ftm-capture.yml +4 -4
- package/ftm-codex-gate/SKILL.md +361 -361
- package/ftm-codex-gate.yml +2 -2
- package/ftm-config/SKILL.md +422 -345
- package/ftm-config.default.yml +125 -82
- package/ftm-config.yml +44 -2
- package/ftm-council/SKILL.md +416 -416
- package/ftm-council/references/prompts/CLAUDE-INVESTIGATION.md +60 -60
- package/ftm-council/references/prompts/CODEX-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/GEMINI-INVESTIGATION.md +58 -58
- package/ftm-council/references/prompts/REBUTTAL-TEMPLATE.md +57 -57
- package/ftm-council/references/protocols/PREREQUISITES.md +47 -47
- package/ftm-council/references/protocols/STEP-0-FRAMING.md +46 -46
- package/ftm-council.yml +2 -2
- package/ftm-dashboard/SKILL.md +163 -163
- package/ftm-dashboard.yml +4 -4
- package/ftm-debug/SKILL.md +1037 -1037
- package/ftm-debug/references/phases/PHASE-0-INTAKE.md +58 -58
- package/ftm-debug/references/phases/PHASE-1-TRIAGE.md +46 -46
- package/ftm-debug/references/phases/PHASE-2-WAR-ROOM-AGENTS.md +279 -279
- package/ftm-debug/references/phases/PHASE-3-TO-6-EXECUTION.md +436 -436
- package/ftm-debug/references/protocols/BLACKBOARD.md +86 -86
- package/ftm-debug/references/protocols/EDGE-CASES.md +103 -103
- package/ftm-debug.yml +2 -2
- package/ftm-diagram/SKILL.md +277 -277
- package/ftm-diagram.yml +2 -2
- package/ftm-executor/SKILL.md +777 -777
- package/ftm-executor/references/STYLE-TEMPLATE.md +73 -73
- package/ftm-executor/references/phases/PHASE-0-VERIFICATION.md +62 -62
- package/ftm-executor/references/phases/PHASE-2-AGENT-ASSEMBLY.md +34 -34
- package/ftm-executor/references/phases/PHASE-3-WORKTREES.md +38 -38
- package/ftm-executor/references/phases/PHASE-4-5-AUDIT.md +72 -72
- package/ftm-executor/references/phases/PHASE-4-DISPATCH.md +66 -66
- package/ftm-executor/references/phases/PHASE-5-5-CODEX-GATE.md +73 -73
- package/ftm-executor/references/protocols/DOCUMENTATION-BOOTSTRAP.md +36 -36
- package/ftm-executor/references/protocols/MODEL-PROFILE.md +59 -59
- package/ftm-executor/references/protocols/PROGRESS-TRACKING.md +66 -66
- package/ftm-executor/runtime/ftm-runtime.mjs +252 -252
- package/ftm-executor/runtime/package.json +8 -8
- package/ftm-executor.yml +2 -2
- package/ftm-git/SKILL.md +441 -441
- package/ftm-git/evals/evals.json +26 -26
- package/ftm-git/evals/promptfoo.yaml +75 -75
- package/ftm-git/hooks/post-commit-experience.sh +92 -92
- package/ftm-git/references/patterns/SECRET-PATTERNS.md +104 -104
- package/ftm-git/references/protocols/REMEDIATION.md +139 -139
- package/ftm-git/scripts/pre-commit-secrets.sh +110 -110
- package/ftm-git.yml +2 -2
- package/ftm-inbox/backend/__pycache__/main.cpython-314.pyc +0 -0
- package/ftm-inbox/backend/adapters/_retry.py +64 -64
- package/ftm-inbox/backend/adapters/base.py +230 -230
- package/ftm-inbox/backend/adapters/freshservice.py +104 -104
- package/ftm-inbox/backend/adapters/gmail.py +125 -125
- package/ftm-inbox/backend/adapters/jira.py +136 -136
- package/ftm-inbox/backend/adapters/registry.py +192 -192
- package/ftm-inbox/backend/adapters/slack.py +110 -110
- package/ftm-inbox/backend/db/connection.py +54 -54
- package/ftm-inbox/backend/db/schema.py +78 -78
- package/ftm-inbox/backend/executor/__init__.py +7 -7
- package/ftm-inbox/backend/executor/engine.py +149 -149
- package/ftm-inbox/backend/executor/step_runner.py +98 -98
- package/ftm-inbox/backend/main.py +103 -103
- package/ftm-inbox/backend/models/__init__.py +1 -1
- package/ftm-inbox/backend/models/unified_task.py +36 -36
- package/ftm-inbox/backend/planner/__init__.py +6 -6
- package/ftm-inbox/backend/planner/__pycache__/__init__.cpython-314.pyc +0 -0
- package/ftm-inbox/backend/planner/__pycache__/generator.cpython-314.pyc +0 -0
- package/ftm-inbox/backend/planner/__pycache__/schema.cpython-314.pyc +0 -0
- package/ftm-inbox/backend/planner/generator.py +127 -127
- package/ftm-inbox/backend/planner/schema.py +34 -34
- package/ftm-inbox/backend/requirements.txt +5 -5
- package/ftm-inbox/backend/routes/__pycache__/plan.cpython-314.pyc +0 -0
- package/ftm-inbox/backend/routes/execute.py +186 -186
- package/ftm-inbox/backend/routes/health.py +52 -52
- package/ftm-inbox/backend/routes/inbox.py +68 -68
- package/ftm-inbox/backend/routes/plan.py +271 -271
- package/ftm-inbox/bin/launchagent.mjs +91 -91
- package/ftm-inbox/bin/setup.mjs +188 -188
- package/ftm-inbox/bin/start.sh +10 -10
- package/ftm-inbox/bin/status.sh +17 -17
- package/ftm-inbox/bin/stop.sh +8 -8
- package/ftm-inbox/config.example.yml +55 -55
- package/ftm-inbox/package-lock.json +2898 -2898
- package/ftm-inbox/package.json +26 -26
- package/ftm-inbox/postcss.config.js +6 -6
- package/ftm-inbox/src/app.css +199 -199
- package/ftm-inbox/src/app.html +18 -18
- package/ftm-inbox/src/lib/api.ts +166 -166
- package/ftm-inbox/src/lib/components/ExecutionLog.svelte +81 -81
- package/ftm-inbox/src/lib/components/InboxFeed.svelte +143 -143
- package/ftm-inbox/src/lib/components/PlanStep.svelte +271 -271
- package/ftm-inbox/src/lib/components/PlanView.svelte +206 -206
- package/ftm-inbox/src/lib/components/StreamPanel.svelte +99 -99
- package/ftm-inbox/src/lib/components/TaskCard.svelte +190 -190
- package/ftm-inbox/src/lib/components/ui/EmptyState.svelte +63 -63
- package/ftm-inbox/src/lib/components/ui/KawaiiCard.svelte +86 -86
- package/ftm-inbox/src/lib/components/ui/PillButton.svelte +106 -106
- package/ftm-inbox/src/lib/components/ui/StatusBadge.svelte +67 -67
- package/ftm-inbox/src/lib/components/ui/StreamDrawer.svelte +149 -149
- package/ftm-inbox/src/lib/components/ui/ThemeToggle.svelte +80 -80
- package/ftm-inbox/src/lib/theme.ts +47 -47
- package/ftm-inbox/src/routes/+layout.svelte +76 -76
- package/ftm-inbox/src/routes/+page.svelte +401 -401
- package/ftm-inbox/svelte.config.js +12 -12
- package/ftm-inbox/tailwind.config.ts +63 -63
- package/ftm-inbox/tsconfig.json +13 -13
- package/ftm-inbox/vite.config.ts +6 -6
- package/ftm-intent/SKILL.md +241 -241
- package/ftm-intent.yml +2 -2
- package/ftm-manifest.json +3794 -3794
- package/ftm-map/SKILL.md +291 -291
- package/ftm-map/scripts/db.py +712 -712
- package/ftm-map/scripts/index.py +415 -415
- package/ftm-map/scripts/parser.py +224 -224
- package/ftm-map/scripts/queries/go-tags.scm +20 -20
- package/ftm-map/scripts/queries/javascript-tags.scm +35 -35
- package/ftm-map/scripts/queries/python-tags.scm +31 -31
- package/ftm-map/scripts/queries/ruby-tags.scm +19 -19
- package/ftm-map/scripts/queries/rust-tags.scm +37 -37
- package/ftm-map/scripts/queries/typescript-tags.scm +41 -41
- package/ftm-map/scripts/query.py +301 -301
- package/ftm-map/scripts/ranker.py +377 -377
- package/ftm-map/scripts/requirements.txt +5 -5
- package/ftm-map/scripts/setup-hooks.sh +27 -27
- package/ftm-map/scripts/setup.sh +56 -56
- package/ftm-map/scripts/test_db.py +364 -364
- package/ftm-map/scripts/test_parser.py +174 -174
- package/ftm-map/scripts/test_query.py +183 -183
- package/ftm-map/scripts/test_ranker.py +199 -199
- package/ftm-map/scripts/views.py +591 -591
- package/ftm-map.yml +2 -2
- package/ftm-mind/SKILL.md +201 -1943
- package/ftm-mind/evals/promptfoo.yaml +142 -142
- package/ftm-mind/references/blackboard-protocol.md +110 -0
- package/ftm-mind/references/blackboard-schema.md +328 -328
- package/ftm-mind/references/complexity-guide.md +110 -110
- package/ftm-mind/references/complexity-sizing.md +138 -0
- package/ftm-mind/references/decide-act-protocol.md +172 -0
- package/ftm-mind/references/direct-execution.md +51 -0
- package/ftm-mind/references/environment-discovery.md +77 -0
- package/ftm-mind/references/event-registry.md +319 -319
- package/ftm-mind/references/mcp-inventory.md +300 -296
- package/ftm-mind/references/ops-routing.md +47 -0
- package/ftm-mind/references/orient-protocol.md +234 -0
- package/ftm-mind/references/personality.md +40 -0
- package/ftm-mind/references/protocols/COMPLEXITY-SIZING.md +72 -72
- package/ftm-mind/references/protocols/MCP-HEURISTICS.md +32 -32
- package/ftm-mind/references/protocols/PLAN-APPROVAL.md +80 -80
- package/ftm-mind/references/reflexion-protocol.md +249 -249
- package/ftm-mind/references/routing/SCENARIOS.md +22 -22
- package/ftm-mind/references/routing-scenarios.md +35 -35
- package/ftm-mind.yml +2 -2
- package/ftm-ops.yml +4 -0
- package/ftm-pause/SKILL.md +395 -395
- package/ftm-pause/references/protocols/SKILL-RESTORE-PROTOCOLS.md +186 -186
- package/ftm-pause/references/protocols/VALIDATION.md +80 -80
- package/ftm-pause.yml +2 -2
- package/ftm-researcher/SKILL.md +275 -275
- package/ftm-researcher/evals/agent-diversity.yaml +17 -17
- package/ftm-researcher/evals/synthesis-quality.yaml +12 -12
- package/ftm-researcher/evals/trigger-accuracy.yaml +39 -39
- package/ftm-researcher/references/adaptive-search.md +116 -116
- package/ftm-researcher/references/agent-prompts.md +193 -193
- package/ftm-researcher/references/council-integration.md +193 -193
- package/ftm-researcher/references/output-format.md +203 -203
- package/ftm-researcher/references/synthesis-pipeline.md +165 -165
- package/ftm-researcher/scripts/score_credibility.py +234 -234
- package/ftm-researcher/scripts/validate_research.py +92 -92
- package/ftm-researcher.yml +2 -2
- package/ftm-resume/SKILL.md +518 -518
- package/ftm-resume/references/protocols/VALIDATION.md +172 -172
- package/ftm-resume.yml +2 -2
- package/ftm-retro/SKILL.md +380 -380
- package/ftm-retro/references/protocols/SCORING-RUBRICS.md +89 -89
- package/ftm-retro/references/templates/REPORT-FORMAT.md +109 -109
- package/ftm-retro.yml +2 -2
- package/ftm-routine/SKILL.md +170 -170
- package/ftm-routine.yml +4 -4
- package/ftm-state/blackboard/capabilities.json +5 -5
- package/ftm-state/blackboard/capabilities.schema.json +27 -27
- package/ftm-state/blackboard/context.json +37 -23
- package/ftm-state/blackboard/experiences/doom-statusline-fix.json +26 -0
- package/ftm-state/blackboard/experiences/hackathon-pages-site.json +26 -0
- package/ftm-state/blackboard/experiences/hindsight-sso-kickoff.json +42 -0
- package/ftm-state/blackboard/experiences/index.json +58 -9
- package/ftm-state/blackboard/experiences/learning-ragnarok-api-access.json +23 -0
- package/ftm-state/blackboard/experiences/nordlayer-members-auto-assign.json +26 -0
- package/ftm-state/blackboard/experiences/saml2aws-stale-session-fix.json +41 -0
- package/ftm-state/blackboard/patterns.json +6 -6
- package/ftm-state/schemas/context.schema.json +130 -130
- package/ftm-state/schemas/experience-index.schema.json +77 -77
- package/ftm-state/schemas/experience.schema.json +78 -78
- package/ftm-state/schemas/patterns.schema.json +44 -44
- package/ftm-upgrade/SKILL.md +194 -194
- package/ftm-upgrade/scripts/check-version.sh +76 -76
- package/ftm-upgrade/scripts/upgrade.sh +143 -143
- package/ftm-upgrade.yml +2 -2
- package/ftm-verify.yml +2 -2
- package/ftm.yml +2 -2
- package/hooks/ftm-auto-log.sh +137 -0
- package/hooks/ftm-blackboard-enforcer.sh +93 -93
- package/hooks/ftm-discovery-reminder.sh +90 -90
- package/hooks/ftm-drafts-gate.sh +61 -61
- package/hooks/ftm-event-logger.mjs +107 -107
- package/hooks/ftm-install-hooks.sh +240 -0
- package/hooks/ftm-learning-capture.sh +117 -0
- package/hooks/ftm-map-autodetect.sh +79 -79
- package/hooks/ftm-pending-sync-check.sh +22 -22
- package/hooks/ftm-plan-gate.sh +92 -92
- package/hooks/ftm-post-commit-trigger.sh +57 -57
- package/hooks/ftm-post-compaction.sh +138 -0
- package/hooks/ftm-pre-compaction.sh +147 -0
- package/hooks/ftm-session-end.sh +52 -0
- package/hooks/ftm-session-snapshot.sh +213 -0
- package/hooks/settings-template.json +81 -81
- package/install.sh +363 -363
- package/package.json +84 -84
- package/uninstall.sh +25 -25
package/ftm/SKILL.md
CHANGED
|
@@ -1,122 +1,125 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: ftm
|
|
3
|
-
description: Universal entry point for all ftm skills. Routes freeform text to the right ftm skill. ftm-mind is the default cognitive entry point for all unclassified input.
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# Feed The Machine — Universal Skill Router
|
|
7
|
-
|
|
8
|
-
You are the entry point for the ftm skill system. Your job is routing — fast, thin, decisive.
|
|
9
|
-
|
|
10
|
-
## Routing Rules
|
|
11
|
-
|
|
12
|
-
Evaluate the user's input in this order:
|
|
13
|
-
|
|
14
|
-
### 1. Help Menu
|
|
15
|
-
If input is empty, "help", "?", or "menu" → display the help menu below. Do NOT invoke any skill.
|
|
16
|
-
|
|
17
|
-
### 2. Explicit Skill Name
|
|
18
|
-
If input starts with a recognized skill name, route directly to that skill:
|
|
19
|
-
|
|
20
|
-
| Input prefix | Route to |
|
|
21
|
-
|---|---|
|
|
22
|
-
| `brainstorm` | ftm-brainstorm |
|
|
23
|
-
| `execute`, `run` (+ file path) | ftm-executor |
|
|
24
|
-
| `debug` | ftm-debug |
|
|
25
|
-
| `audit` | ftm-audit |
|
|
26
|
-
| `council` | ftm-council |
|
|
27
|
-
| `intent` | ftm-intent |
|
|
28
|
-
| `diagram` | ftm-diagram |
|
|
29
|
-
| `codex-gate`, `codex gate` | ftm-codex-gate |
|
|
30
|
-
| `pause` | ftm-pause |
|
|
31
|
-
| `resume` | ftm-resume |
|
|
32
|
-
| `browse` | ftm-browse |
|
|
33
|
-
| `upgrade` | ftm-upgrade |
|
|
34
|
-
| `retro` | ftm-retro |
|
|
35
|
-
| `config` | ftm-config |
|
|
36
|
-
| `capture`, `codify`, `save as routine` | ftm-capture |
|
|
37
|
-
| `mind` | ftm-mind |
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
- "
|
|
55
|
-
-
|
|
56
|
-
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
/ftm
|
|
69
|
-
/ftm
|
|
70
|
-
/ftm
|
|
71
|
-
/ftm
|
|
72
|
-
/ftm
|
|
73
|
-
/ftm
|
|
74
|
-
/ftm
|
|
75
|
-
/ftm
|
|
76
|
-
/ftm
|
|
77
|
-
/ftm
|
|
78
|
-
/ftm
|
|
79
|
-
/ftm
|
|
80
|
-
/ftm
|
|
81
|
-
/ftm
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
1
|
+
---
|
|
2
|
+
name: ftm
|
|
3
|
+
description: Universal entry point for all ftm skills. Routes freeform text to the right ftm skill. ftm-mind is the default cognitive entry point for all unclassified input.
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
# Feed The Machine — Universal Skill Router
|
|
7
|
+
|
|
8
|
+
You are the entry point for the ftm skill system. Your job is routing — fast, thin, decisive.
|
|
9
|
+
|
|
10
|
+
## Routing Rules
|
|
11
|
+
|
|
12
|
+
Evaluate the user's input in this order:
|
|
13
|
+
|
|
14
|
+
### 1. Help Menu
|
|
15
|
+
If input is empty, "help", "?", or "menu" → display the help menu below. Do NOT invoke any skill.
|
|
16
|
+
|
|
17
|
+
### 2. Explicit Skill Name
|
|
18
|
+
If input starts with a recognized skill name, route directly to that skill:
|
|
19
|
+
|
|
20
|
+
| Input prefix | Route to |
|
|
21
|
+
|---|---|
|
|
22
|
+
| `brainstorm` | ftm-brainstorm |
|
|
23
|
+
| `execute`, `run` (+ file path) | ftm-executor |
|
|
24
|
+
| `debug` | ftm-debug |
|
|
25
|
+
| `audit` | ftm-audit |
|
|
26
|
+
| `council` | ftm-council |
|
|
27
|
+
| `intent` | ftm-intent |
|
|
28
|
+
| `diagram` | ftm-diagram |
|
|
29
|
+
| `codex-gate`, `codex gate` | ftm-codex-gate |
|
|
30
|
+
| `pause` | ftm-pause |
|
|
31
|
+
| `resume` | ftm-resume |
|
|
32
|
+
| `browse` | ftm-browse |
|
|
33
|
+
| `upgrade` | ftm-upgrade |
|
|
34
|
+
| `retro` | ftm-retro |
|
|
35
|
+
| `config` | ftm-config |
|
|
36
|
+
| `capture`, `codify`, `save as routine` | ftm-capture |
|
|
37
|
+
| `mind` | ftm-mind |
|
|
38
|
+
| `ops`, `eng-buddy` | ftm-ops |
|
|
39
|
+
|
|
40
|
+
When routing to a specific skill:
|
|
41
|
+
1. Update the blackboard context: read `~/.claude/ftm-state/blackboard/context.json`, set `current_task` to reflect the incoming request, append to `session_metadata.skills_invoked`, write back.
|
|
42
|
+
2. Show: `Routing to ftm-[skill]: [one-line reason]`
|
|
43
|
+
3. Invoke the skill via the Skill tool with the user's full input as args.
|
|
44
|
+
|
|
45
|
+
### 3. Everything Else → ftm-mind
|
|
46
|
+
All freeform input that does not match an explicit skill prefix goes to ftm-mind for OODA processing:
|
|
47
|
+
1. Update the blackboard context (same as above).
|
|
48
|
+
2. Show: `Routing to ftm-mind: analyzing your request.`
|
|
49
|
+
3. Invoke: Skill tool with skill="ftm-mind", args="<full user input>"
|
|
50
|
+
|
|
51
|
+
### Legacy Fallback
|
|
52
|
+
If ftm-mind fails (errors, timeouts, no actionable output) AND `legacy_router_fallback` is `true` in `~/.claude/ftm-config.yml`, fall back to keyword matching:
|
|
53
|
+
|
|
54
|
+
- "bug", "broken", "error", "fix", "crash", "failing" → ftm-debug
|
|
55
|
+
- "plan", "think", "build", "design", "how should" → ftm-brainstorm
|
|
56
|
+
- file path + "execute"/"go"/"run" → ftm-executor
|
|
57
|
+
- "task", "capacity", "burnout", "blocking", "stakeholder", "wrap up", "what happened" → ftm-ops
|
|
58
|
+
- All other → ftm-brainstorm (default)
|
|
59
|
+
|
|
60
|
+
This fallback can be disabled after stable operation.
|
|
61
|
+
|
|
62
|
+
## Help Menu
|
|
63
|
+
|
|
64
|
+
When the user provides no input or asks for help, display this exactly:
|
|
65
|
+
|
|
66
|
+
```
|
|
67
|
+
FTM Skills:
|
|
68
|
+
/ftm mind [anything] — Default cognitive entry point (OODA reasoning)
|
|
69
|
+
/ftm brainstorm [idea] — Research-backed idea development
|
|
70
|
+
/ftm execute [plan-path] — Autonomous plan execution with agent teams
|
|
71
|
+
/ftm debug [description] — Multi-vector deep debugging war room
|
|
72
|
+
/ftm audit — Wiring verification (knip + adversarial)
|
|
73
|
+
/ftm council [question] — Multi-model deliberation (Claude + Codex + Gemini)
|
|
74
|
+
/ftm intent — Manage INTENT.md documentation layer
|
|
75
|
+
/ftm diagram — Manage ARCHITECTURE.mmd diagram layer
|
|
76
|
+
/ftm codex-gate — Run adversarial Codex validation
|
|
77
|
+
/ftm pause — Save session state for later
|
|
78
|
+
/ftm resume — Resume a paused session
|
|
79
|
+
/ftm browse [url] — Visual verification with headless browser
|
|
80
|
+
/ftm upgrade — Check for and install skill updates
|
|
81
|
+
/ftm retro — Post-execution retrospective
|
|
82
|
+
/ftm config — View and edit ftm configuration
|
|
83
|
+
/ftm capture [name] — Extract routine + playbook from current session
|
|
84
|
+
/ftm ops [request] — Task management, capacity, stakeholders, meetings
|
|
85
|
+
|
|
86
|
+
Or just describe what you need and ftm-mind will handle it.
|
|
87
|
+
```
|
|
88
|
+
|
|
89
|
+
## Important Notes
|
|
90
|
+
- Pass through the full user input as args to the target skill. Let the target skill parse details.
|
|
91
|
+
- Do not attempt to do the work yourself — route only.
|
|
92
|
+
- Be fast — decisive routing, not conversation.
|
|
93
|
+
- Case insensitive matching for all prefix detection.
|
|
94
|
+
|
|
95
|
+
## Requirements
|
|
96
|
+
|
|
97
|
+
- config: `~/.claude/ftm-config.yml` | optional | legacy_router_fallback setting
|
|
98
|
+
- reference: `~/.claude/ftm-state/blackboard/context.json` | optional | session state for blackboard update on routing
|
|
99
|
+
- tool: none beyond skill invocation mechanism
|
|
100
|
+
|
|
101
|
+
## Risk
|
|
102
|
+
|
|
103
|
+
- level: read_only
|
|
104
|
+
- scope: reads blackboard context.json and updates session_metadata.skills_invoked before routing; does not modify any project files
|
|
105
|
+
- rollback: no mutations to reverse; blackboard update is a metadata append
|
|
106
|
+
|
|
107
|
+
## Approval Gates
|
|
108
|
+
|
|
109
|
+
- trigger: ftm-mind failure AND legacy_router_fallback enabled | action: fall back to keyword routing automatically (no user gate needed)
|
|
110
|
+
- complexity_routing: micro → auto | small → auto | medium → auto | large → auto | xl → auto
|
|
111
|
+
|
|
112
|
+
## Fallbacks
|
|
113
|
+
|
|
114
|
+
- condition: ftm-mind fails or times out | action: check legacy_router_fallback in ftm-config.yml; if true, use keyword matching; if false, report failure
|
|
115
|
+
- condition: blackboard context.json missing | action: skip blackboard update, proceed with routing
|
|
116
|
+
- condition: skill tool unavailable for target skill | action: report routing failure to user with the target skill name
|
|
117
|
+
|
|
118
|
+
## Capabilities
|
|
119
|
+
|
|
120
|
+
- env: none required
|
|
121
|
+
|
|
122
|
+
## Event Payloads
|
|
123
|
+
|
|
124
|
+
### (none)
|
|
125
|
+
ftm is a pure router and does not emit events directly. Events are emitted by the target skill after routing.
|