Skip to main content

kenn-forge-ephemeral-dev

Use when working on kenn-forge local development sessions that need backend and frontend on ephemeral/free ports, isolated generated config, copied SQLite state, or dev-ephemeral status JSON/PIDs.

来源信息

仓库
kenn-io/forge
最近来源活动
2026年9月24日 17:39
检测到的 SKILL.md 语言
英语
星标
190
分支
28

安装方式

默认使用会先检查来源的 Prompt;你也可以切换为直接命令,或下载本地副本。

检查来源文件

决定是否安装前,请先阅读 SKILL.md,以及 SkillsMP 当前展示的配套文件。

文件资源管理器
2 个文件

正在显示 SKILL.md

SKILL.md
来源说明 · 只读预览
name
kenn-forge-ephemeral-dev
description
Use when working on kenn-forge local development sessions that need backend and frontend on ephemeral/free ports, isolated generated config, copied SQLite state, or dev-ephemeral status JSON/PIDs.
# Kenn Forge Ephemeral Dev ## Core Rule Use `make dev-ephemeral` when the user wants a local kenn-forge dev stack without fixed ports or without mutating the normal config/database. Do not hand-roll separate `make dev` and `make frontend-dev` commands unless the user explicitly asks for manual process control. ## Workflow 1. Start the stack: ```sh make dev-ephemeral ``` Provider sync is disabled by default. Opt in only when fresh provider data is required: ```sh make dev-ephemeral ARGS="-sync" ``` 2. The default work directory is `tmp/dev-ephemeral`. Re-running the command while that stack is live prints the existing status instead of starting a duplicate stack. 3. For a separate concurrent run directory or explicit ports, pass `ARGS`: ```sh make dev-ephemeral ARGS="-work-dir tmp/my-run" make dev-ephemeral ARGS="-backend-port 19091 -frontend-port 15174 -mcp-port 19092" ``` 4. Use a fresh empty DB only when requested: ```sh make dev-ephemeral ARGS="-fresh-db" ``` ## Behavior Contract - The launcher starts both backend and frontend. - The backend disables provider sync by default; `-sync` explicitly enables it. - It writes a generated config at `<work-dir>/config.toml`. - When the source config enables MCP, the generated config moves the MCP listener to a free port (or `-mcp-port`) so the ephemeral backend never fights the live daemon for the configured one; the status JSON reports it as `mcp_port` and `mcp_url`, omitted when MCP is disabled. - It copies the configured source SQLite DB by default into `<work-dir>/data/forge.db`. - It passes `KENN_FORGE_CONFIG=<work-dir>/config.toml` to both processes. - It passes `KENN_FORGE_API_URL=<backend-url>` to the frontend. - It writes typed status JSON at `<work-dir>/dev-ephemeral.json`. - `make dev-ephemeral-stop` without arguments stops the default `tmp/dev-ephemeral` stack. - The launcher is intentionally unsupported on Windows for now. ## Status JSON Read `<work-dir>/dev-ephemeral.json` when another tool or response needs process discovery: ```json { "pid": 1001, "backend_pid": 1002, "frontend_pid": 1003, "backend_port": 19091, "frontend_port": 15174, "mcp_port": 19092, "config_path": "tmp/my-run/config.toml", "data_dir": "tmp/my-run/data", "backend_url": "http://127.0.0.1:19091", "frontend_url": "http://127.0.0.1:15174", "mcp_url": "http://127.0.0.1:19092" } ``` Treat this as the source of truth for selected ports and PIDs instead of scraping terminal output. ## Verification For changes to the workflow or this skill, run: ```sh go test ./tools/devephemeral -shuffle=on make lint-check make help ``` Before claiming the stack is running, verify the status file exists and contains both child PIDs and both URLs.
在 GitHub 查看