技能创建器
skill-creator
创建、改进和评估自定义技能,把专业流程转化为可重复使用的 AI 能力。
open-tag-admin【数据与研究】Admin/control console for an Open Tag Slack tag-in workflow backed by MFS. Use to set up a new Open Tag bot from scratch, check what is currently running (backend, permitted MFS scopes, Slack channel), change settings, add or remove data sources, switch the CLI agent backend (claude -p / codex exec), invite or move the bot in Slack, run preflight che…
独立 GitHub 快照 · 自动分类 · 以原作者文档为准
This skill is the control console for an Open Tag deployment. Use it for the first-time setup and for ongoing operation alike: inspect the live bot, change the backend or permitted scopes, add a new data source, move the bot to another Slack channel, or debug a run.
Keep the architecture generic:
claude -p (Claude Code) or
codex exec (Codex).The user-facing flow is:
This skill does not call a model API directly. Model access, tool access, and write permissions come from the selected CLI agent backend.
Open Tag is a thin layer on top of a running MFS server with at least one indexed source. Confirm these before any Slack work:
uv tool install mfs-server, then
mfs-server run (binds 127.0.0.1:13619). Check with
curl -s 127.0.0.1:13619/healthz.$mfs-ingest) to add a source; see
"Adding data sources" below.opentag_doctor.py fails fast with a hint if either is missing.
The Slack display name is whatever you call the Slack app — Open Tag's code
strips the mention regardless. Recommended convention, so it reads like the
official @Claude tag:
| Backend | Suggested Slack app name | In Slack |
|---|---|---|
claude | OpenClaude | @OpenClaude <task> |
codex | OpenCodex | @OpenCodex <task> |
Name the Slack app accordingly when you create it (step 3). Set
OPENTAG_BOT_NAME if you want the startup summary to print a different label.
references/slack-adapter.md and follow its end-to-end checklist.app_mention, add the required bot scopes, install it, and
invite the bot to the channel.MFS_ALLOWED_SCOPES to the exact source
roots the runtime agent may use.OPENTAG_BACKEND explicitly: claude or codex.python scripts/opentag_doctor.py --channel-id <channel-id> and fix any
failed check.uv run --with slack-bolt python scripts/slack_socket_agent.py --backend <backend>.
It prints a "what's live now" summary — read it, then validate thread context,
permitted-context retrieval, and task execution with a realistic delegated task.Open Tag's reach is exactly what MFS has indexed and what you list in
MFS_ALLOWED_SCOPES. To add a source, use the mfs-ingest skill — it handles
credentials and writes the connector config; Open Tag never duplicates that.
Representative sources (each is mfs add <uri> --config <toml> once, then add
its root to MFS_ALLOWED_SCOPES):
mfs add /path/to/repo → file://local/path/to/reposlack://team-memory (own token + channel allowlist)github://your-org/your-repolinear://your-workspacepostgres://prodMFS supports 20+ connectors (databases, object stores, trackers, chat, web).
For the full list and per-connector credentials, point users at the
mfs-ingest skill and docs/connectors/. This breadth of Memory — including
raw data layers, all self-hosted — is Open Tag's main edge over a hosted tag bot;
it does not add hosted governance, audit, or approval flows.
Keep the Python scripts as deterministic glue:
slack_socket_agent.py: receive Slack app_mention, read the thread, post
progress, call the backend, and post the final answer.opentag_agent.py: build a non-interactive prompt and invoke the selected CLI
backend.mfs_search.py and mfs_cat.py: call the MFS HTTP API with scoped search and
reads.opentag_memory.py: maintain optional local seed notes and re-index them in
MFS for deterministic demos.opentag_doctor.py: preflight environment variables, Slack bot access, MFS
reachability, allowed scopes, and backend availability.Shell scripts can wrap these commands, but Python is less brittle for Slack Web API calls, JSON handling, temporary files, subprocess timeouts, and cross-agent backend selection.
The Slack bridge invokes a fresh CLI agent per mention. That runtime agent must
follow references/runtime-agent.md. Keep runtime behavior there, not in this
admin skill.
Thread context is short-term state. Durable context should come from permitted
MFS scopes such as indexed Slack history, repos, docs, issues, databases, object
stores, or optional local seed notes. See references/memory.md for the optional
helper's file shape.
Never hard-code real workspace names, channel IDs, user IDs, local absolute paths, or customer/project details into this skill. Use placeholders in documentation and environment examples.
references/slack-adapter.md when configuring or running Slack.references/backends.md when changing backend selection or command
invocation.references/runtime-agent.md when changing per-mention behavior.references/memory.md only when using optional local seed notes.