skills/famou-experiment-manager/SKILL.md
Workflow skill for managing famou evolutionary experiment tasks, including public normal mode and public pro hybrid mode. Use this skill when the user mentions "submit experiment", "check experiment status", "delete experiment", "get experiment results", "account info", "quota", "credits", "famou experiment", "upload experiment", "config.yaml experiment", "hybrid mode", or needs to use famou-ctl to manage experiment tasks. Even if the user just says "submit" or "run experiment", trigger this skill whenever the context involves the famou platform.
npx skillsauth add baidubce/skills famou-experiment-managerInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
A complete workflow for submitting and managing experiment tasks via famou-ctl-sdk.
famou-ctl --version
pip install famou-sdk1.1.0. For example, 1.0.0 does not meet the requirement. If the version is not 1.1.0, upgrade it: pip install famou-sdk==1.1.0After installation or upgrade, verify again with famou-ctl --version. If the command still fails or the version is still not 1.1.0, tell the user to manually install famou-ctl-sdk version 1.1.0 and exit.
Use the helper script scripts/config.py to read and configure API settings.
Read API config:
python3 scripts/config.py read
| Result | Action |
|--------|--------|
| status: "ok" | Config is complete, skip configuration |
| status: "missing" | Prompt user to enter API key |
Configure API:
Ask the user to provide a valid API_KEY, then run:
python3 scripts/config.py write <YOUR_API_KEY>
Use the ask_user or question tool to let the user choose the submission mode before searching for or creating config.yaml:
cloud_type omitted)cloud_type: "hybrid")Recursively search for all config.yaml files under the current working directory:
find . -name "config.yaml" -type f 2>/dev/null | sort
Handle results:
| Case | Action |
|------|--------|
| Exactly 1 found | Use it directly; inform the user of the path and proceed |
| Multiple found | Use ask_user tool to let the user choose |
| None found | Report to the user and provide the template for the selected mode |
config.yaml template:
evolve_config:
max_iterations: 100
population_size: 100
num_islands: 4
initial_program: "init.py"
evaluator: "evaluator.py"
system_message: "prompt.md"
Mode-specific cloud_type rule:
cloud_type. If an existing config contains cloud_type: "hybrid", do not treat it as normal mode.cloud_type: "hybrid" before local test or submission.Use the parent directory of the selected config.yaml (as an absolute path) as the experiment directory:
# Example: if config.yaml is at ./experiments/my_exp/config.yaml,
# the experiment directory is /absolute/path/to/experiments/my_exp
realpath $(dirname <path-to-config.yaml>)
Use the ask_user or question tool or ask the user in conversation to provide an experiment_name. Remind the user that the experiment name may only contain letters, numbers, and underscores, and must not exceed 20 characters.
Before any real experiment creation, run a dry-run from the experiment directory to estimate cost and verify credits:
famou-ctl experiment create \
--config ./config.yaml \
--experiment-name <experiment_name> \
--dry-run \
--json
ask_user or question tool.First complete 2.5 Dry-run Before Creating the Experiment. Only proceed if credits are sufficient and the user confirms submission.
famou-ctl experiment create \
--config <absolute-path-to-config.yaml> \
--experiment-name <experiment_name> \
-y \
--json
Handle output:
Cloud generates code; local evaluator worker evaluates and pushes results back. Start the worker once after the experiment is created.
Run the local test from the experiment directory. If the user did not specify a timeout, use a reasonable default such as 300.
famou-ctl test --config ./config.yaml --timeout <timeout_seconds>
Handle output:
evaluator.py, init.py, prompt.md, or config.yaml as needed, then rerun the local test.First complete 2.5 Dry-run Before Creating the Experiment. Only proceed if credits are sufficient and the user confirms submission.
famou-ctl experiment create \
--config <absolute-path-to-config.yaml> \
--experiment-name <experiment_name> \
-y \
--json
On success, parse and keep the experiment_id. The evaluator worker and monitoring steps require this ID.
From the experiment directory, create .famou/, clear any previous .famou/eval_trace, then start the evaluator as a background process. Redirect all output to .famou/eval_trace and save the process ID.
mkdir -p .famou
: > .famou/eval_trace
nohup famou-ctl evaluator start \
--experiment-id <experiment_id> \
--evaluator-path ./evaluator.py \
--max-concurrent=1 \
> .famou/eval_trace 2>&1 &
echo $! > .famou/evaluator.pid
If the runtime provides a built-in background shell/session mechanism, prefer it, but still redirect the evaluator output to .famou/eval_trace.
After starting the worker:
.famou/eval_trace exists..famou/evaluator.pid and verify the process is alive when the local environment supports PID checks.Poll experiment status until online validation passes and the experiment has completed 1 to 3 evolution rounds. After that, stop polling experiment status and continue monitoring only the local evaluator worker.
Recommended check behavior:
.famou/eval_trace..famou/evaluator.pid exists and PID checks are available.For worker health checks, use a modest interval, for example every 1 to 5 minutes. Avoid starting multiple evaluator workers for the same experiment.
When parsing famou-ctl experiment status <experiment-id> --json, keep the outer and inner status fields separate. Do not flatten or overwrite fields with the same name.
status: indicates the overall experiment is active/running on the Famou cloud.status: indicates the current Famou cloud stage.status: "INITIALING": the experiment is validating input. The progress value is validation progress. Continue polling until validation finishes.status: "RUNNING": the experiment has entered the evolution stage. The progress value is evolution progress. Continue polling until the desired 3 to 5 evolution rounds have completed.When reporting status to the user, label these values distinctly, for example as overall status, current stage, stage progress, and evolution rounds.
list, no experiment ID is required. If the user asks for a status-specific list, use the requested status filter.status, pause, resume, cancel, delete, logs, results, and report, look for experiment-id in the conversation context and use it directly.ask_user tool to request it from the user.logs, results, and report, if the user asks to save output but does not provide a file path, ask for the desired output path.When informing the user of available capabilities, do NOT display the raw commands — just describe what each capability does.
famou-ctl experiment list --status <status> --json # List experiments, optionally filtered by status
famou-ctl experiment status <experiment-id> --json # Check experiment status
famou-ctl experiment pause <experiment-id> --json # Pause running experiment
famou-ctl experiment resume <experiment-id> --json # Resume paused experiment
famou-ctl experiment cancel <experiment-id> --json # Cancel experiment
famou-ctl experiment delete <experiment-id> --json # Delete experiment
famou-ctl experiment logs <experiment-id> --follow/-f --output <file-path> --json # View and save experiment logs
famou-ctl experiment results <experiment-id> --output <file-path> --json # View experiment results
famou-ctl experiment report <experiment-id> --output <file-path> --json # Download experiment report in PDF format
Handle output:
cancel command, the response includes credits_used (pre-deducted credits at submission) and credits_refunded (credits returned after cancellation). Display both clearly.experiment-id or check their network connection.When the user asks about account details, quota, credits, balance, usage, or remaining allowance, run:
famou-ctl account info
Handle output:
development
Generate interactive visualization pages for feasible solutions produced by Famou evolutionary algorithms. Use this skill when the user mentions "Famou visualization", "visualize this solution", "show feasible solution results", "evolution results", "evolve visualization", or provides a Python-code solution (path planning, scheduling, knapsack, TSP, job scheduling, machine learning, etc.) that needs to be displayed visually. Even if the user just says "help me visualize this solution", "draw it out", or "show me the results", trigger this skill immediately whenever the context involves evolutionary algorithms or optimization problem solutions.
development
A data analysis skill for understanding datasets, analyzing data, building data processing pipelines, and summarizing analytical results. Use this skill when the user mentions "analyze data", "data processing", "data exploration", "statistical analysis", "data cleaning", "data summarization", "create a data report", "understand this dataset", or "take a look at this CSV/Excel/dataset". Even if the user simply says "help me look at this data" or "analyze this", trigger this skill whenever the context involves a data file or dataset. Also invoke this skill if data analysis is required during Famou problem definition.
testing
Interactive end-to-end Famou workflow for defining, implementing, and solving optimization tasks. The workflow typically proceeds in three stages: (1) understand the data and define the task, producing `problem.md`; (2) implement and validate `evaluator.py`, `init.py`, and `prompt.md` from the task definition; (3) run deep solving through Famou. Trigger this skill whenever the user wants to define, clarify, create, or fix a Famou task; prepare Famou experiment artifacts; write or update `problem.md`, `evaluator.py`, `init.py`, or `prompt.md`; run Famou; do deep solving; or solve an optimization, ML, or search problem with evolutionary methods. Even if the user simply says "help me make a Famou task", "help me solve this", or "run Famou", trigger this skill whenever the surrounding context indicates an optimization or search task. Also trigger when the user describes a combinatorial optimization, scheduling, routing, or ML problem without mentioning Famou — treat it as a potential Famou task.
tools
Replace with description of the skill and when Claude should use it.