save-skill
Skill3 starsChanged 22 days agoMITView on GitHub
Save or replay a MosoFin analysis skill after results exist. Use when the user wants to keep a workflow, list saved skills, replay a named skill, or says save this to MosoFin or locally.
2 other projects use a version of this.
Adopted by
Most recently taken up by
- MosoFin/mosofin-pluginsword for word, first seen Oct 21, 2026
- TheKontextCo/kontext-claude-plugintheir own version, first seen Aug 26, 2026
Other versions2 projects use a version of this.
Word for word · 1
- MosoFin/mosofin-plugins★ 3100% same
Edited · 0
None found.
Wrote their own version · 1
- TheKontextCo/kontext-claude-plugin★ 1same name
How matches are found. Word for word: the exact same text. Edited: shares passages with this file (“99% same” means 99% of its five-word phrases also appear here; 10% or more counts). Their own version: similar meaning, or, weakest, the same name. We can’t tell which project had it first. Projects are counted among the 200 most-starred candidates, and mentions are links to the repository we found, up to 50 per site, so both counts are a floor.
In this repository8 other files it gives its agents.
- connectionsSkill
- connectSkill
- list-skillsSkill
- list-toolsSkill
- query-workspaceSkill
- replay-skillSkill
- run-toolSkill
- workspacesSkill
The file
We split this skill into the rules it gives an agent
9 rules. About 0 are common, 0 are distinctive, and 9 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈0
Distinctive · estimate
This author's own choices. Worth a look.
9
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 23
Do not call parked tools: update_skill, get_agents, or any goal-session tool (start_goal, clarify_goal, generate_goal_brief, …
- Very specific: line 31
If MosoFin tools are absent, a call returns Unknown tool, or MosoFin reports that sign-in is required: the user is not signed in to MosoFin …
- Very specific: line 40
If this chat has not confirmed a workspace, call list_workspaces and confirm by name (workspace_ids + mode) before any skill tool.
- Very specific: line 46
Call get_skills for the confirmed workspace.
- Very specific: line 50
Only then call get_my_skill(skill_id, confirmed="yes", workspace_id=…).
- Very specific: line 54
If references/run-recipe.json exists, ask each inputs[].ask question
- Very specific: line 71
Ask where to save: mosofin (library), claude (bundle to install in this client), or both.
- Very specific: line 87
If the tool refuses confirmation, ask again in chat and retry with confirmed="yes".
- Very specific: line 95
If claude is among the destinations, the response includes a claude_bundle for local install — surface it to the user.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Save or replay a MosoFin skill
Additive-write path. Never persist a skill until the user has seen the results
and explicitly says yes again (a blanket "run it and save it" earlier in
the chat does not count). Full per-tool spec: docs/mcp-tool-spec.md.
Short contract: docs/plugin-contract.md.
MosoFin MCP tools used (registered names; your host prefixes them, e.g.
mcp__plugin_mosofin_mosofin__<name> in Claude Code or mcp__MosoFin__<name>
for a Claude connector):
list_workspacesget_skillsget_my_skillcreate_skill
Do not call parked tools: update_skill, get_agents, or any goal-session
tool (start_goal, clarify_goal, generate_goal_brief, confirm_completion).
Native consent pickers may not appear. Ask in chat, then pass
confirmed="yes" only after an explicit yes.
If MosoFin tools are missing
If MosoFin tools are absent, a call returns Unknown tool, or MosoFin reports
that sign-in is required: the user is not signed in to MosoFin in this host
(this is not a company-file reconnect). Keep their request and follow
/mosofin:connect (skills/connect/SKILL.md) to get them signed in from this
conversation, then continue. Never say "refresh/reconnect". Do not invent a
saved skill — never claim one was saved.
Workspace first
If this chat has not confirmed a workspace, call list_workspaces and confirm
by name (workspace_ids + mode) before any skill tool. Use the opaque
workspace handles exactly as returned.
Replay an existing skill
- Call
get_skillsfor the confirmed workspace. - Match by
name/description. If nothing matches, say so and stop (or send the user to/mosofin:query-workspaceto answer directly). - Present the candidate by name. Wait for an explicit yes. Never auto-replay.
- Only then call
get_my_skill(skill_id, confirmed="yes", workspace_id=…). The response inlinesskill_mdand the manifest; files markedcontent_omitted: trueneed a re-call withpaths=[…]andconfirmed="yes"again. - If
references/run-recipe.jsonexists, ask eachinputs[].askquestion verbatim — never silently default dates. For atype: "data_source"input, list companies bydisplay_name(via query-workspace) and pass the chosendata_source_idinto every step that has the"{data_source_id}"placeholder; a literal id in the recipe is pinned. - Execute steps in order (same
parallel_groupmay batch), substituting{workspace_id}and collected inputs. Replay data only via the query-workspace skill (invoke_datasource_api_tool), never by inventing numbers. - Ignore
dashboard_slug— it is legacy. Never route toshow_*tools.
Save a new skill
Prerequisites: a proven workflow already ran in this conversation (invoke results exist) and the user explicitly asked to save after seeing those results.
- Ask where to save:
mosofin(library),claude(bundle to install in this client), orboth. Do not default. - Call
create_skillwith:name— one verb + one financial object, kebab-case (reconcile-vendor-expenses), never a persona (finance assistant)description— ~100 words, "use when the user asks for …"destination— the choice from step 1confirmed—"yes"only after the post-results yesworkspace_id— confirmed opaque handledatasources— comma-separated ids actually invoked (required if the workflow calledinvoke_datasource_api_tool)files— JSON object string of the bundle. Must includeSKILL.mdat the root with YAML frontmatter. If the workflow read a datasource, also includereferences/run-recipe.json(one step per invoke, exact params,{workspace_id}placeholder, run-time date inputs declared). No.html/.css/.svg. Limits: ≤50 files, ≤1MB/file, ≤5MB total.
- If the tool refuses confirmation, ask again in chat and retry with
confirmed="yes". Do not setconfirmed="yes"without a fresh yes.
Notes:
namemust be ≥3 chars;description≥10 chars.- A
destinationincludingmosofinruns a blocking upload (up to ~45s). On failure nothing is saved — report the structured error; do not claim success. - If
claudeis among the destinations, the response includes aclaude_bundlefor local install — surface it to the user. - Report the saved skill by name and that a new version was created.
create_skill is additive: it creates a new retained version. It does not
overwrite an existing skill version.
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

