SkillAgentSearch skills...

core

Typed backend for decisions, tasks, and content: enforced lifecycle, role-gated ratification, and a relation graph that flags its own stale connections. MCP-native. Zero runtime dependencies. Self-hosted.

Install / Use

claude mcp add Smeldr -- npx -y github:Smeldr/core

If the server publishes to npm under a different name, use that package instead — check the repo README.

About this skill
🔌

MCP Server

Model Context Protocol server

Quality Score

77/100

Supported Platforms

Claude Code
Claude Desktop

Our assessment of core

core scores 77/100 on our quality scale, 3667th of 4,648 Development & Engineering skills we index.

Its MCP Server is 9.8 KB long, split into 7 sections with 1 code example: a thorough specification that gives an agent plenty to work with.

It has 10 GitHub stars, so there is little community track record yet; judge it on its content.

Substance
29/30
Structure
15/20
Description
15/15
Adoption
4/20
Freshness
15/15

Maintenance, license and trust

  • The repository was last updated today, so core is actively maintained.
  • It is released under AGPL-3.0, a copyleft license: you can use it, but modified versions you distribute must carry the same license.
  • Its trust signals score 97/100, with no cautions. These come from repository metadata, not a code audit — read the skill file before letting an agent act on it.

core compared with similar skills

All 4 of these similar skills score higher than core; compare them before choosing.

SkillScoreStarsUpdatedFormat
core (this skill)by Smeldr7710todayMCP Server
Agent-Reachby Panniantong100105.5k3d agoCLAUDE.md
taste-skillby Leonxlnx100104.3ktodayCLAUDE.md
headroomby headroomlabs-ai10078.1ktodayCLAUDE.md
ai-job-searchby ai-job-search-dev10067.1k1d agoCLAUDE.md

Frequently asked questions

How do I install core?
Run claude mcp add Smeldr -- npx -y github:Smeldr/core. The install tabs above show the steps for each supported agent.
Which AI agents does core work with?
It is written for Claude Code and Claude Desktop, as a MCP Server file. Other agents that read the same format can often use it too.
Is core safe to use?
It is AGPL-3.0-licensed and scores 97/100 on trust signals. Skills are instructions an agent will follow, so read the file before installing it and do not approve commands you do not understand.
Is core still maintained?
The repository was last updated today, so core is actively maintained.

Smeldr

Keeps decisions coherent when people and AI agents move fast.

A searchable graph of your decisions: who decided, what is in force, and what builds on what. Kept apart from the context the reasoning came from.

Governance is set per domain and area: a domain's people ratify its decisions, an area's people approve changes to its files. Built for coding. Enforceable as merge gates when you want it.

Self-hosted. Open source. No runtime dependencies.

Go Reference codecov Version

  • Decide. Propose a Decision. Someone with the right ratifies it. It is never edited, only replaced, and the old one stays on record.
  • Know. Every action records who did it: a person, an AI agent or a job. Ask what is in force and what rests on it.
  • Enforce. Tie a Decision to the files it governs. A pull request shows the Decisions that apply and waits for the answer.

v1.182.0: stable. Public APIs are stable within v1. See CHANGELOG.md.

Start in three minutes

1. Run the server.

Download the server for your system, check it against the release's checksums, and start it:

curl -LO https://github.com/Smeldr/core/releases/download/v1.180.0/smeldr-server-linux-amd64
curl -sL https://github.com/Smeldr/core/releases/download/v1.180.0/SHA256SUMS | grep smeldr-server-linux-amd64 | sha256sum -c
mv smeldr-server-linux-amd64 smeldr-server && chmod +x smeldr-server
SECRET=$(openssl rand -hex 32) BASE_URL=http://localhost:8080 \
  ENABLE_TOKENS=1 ENABLE_GOVERNANCE=1 ENABLE_RELATIONS=1 ENABLE_GOVERNANCE_RECORDS=1 \
  ./smeldr-server

The check prints smeldr-server-linux-amd64: OK. On another system, use the matching file from the release instead of linux-amd64:

  • Linux on ARM: linux-arm64.
  • macOS: darwin-arm64 (Apple silicon) or darwin-amd64. Check with shasum -a 256 -c. A file downloaded in a browser is blocked by Gatekeeper until you run xattr -d com.apple.quarantine <file>.
  • Windows: use Git Bash and the windows-amd64.exe files, renamed to smeldr-server.exe and smeldr-cli.exe. Git Bash still runs them as ./smeldr-server and ./smeldr-cli. In WSL, use the linux-amd64 files as shown.

We have run these steps end to end on Linux. On macOS and Windows they have not been run end to end yet.

You should see the bootstrap admin token, shown once, and then the ready line:

WARN smeldr: smeldr_tokens is empty ... bootstrap admin token created (copy now, shown once):
<TOKEN>
smeldr-server: listening on 127.0.0.1:8080

Leave it running.

2. Make a token for yourself, and one for your AI agent.

In a second terminal, in the same directory, download the CLI the same way:

curl -LO https://github.com/Smeldr/cli/releases/download/v0.35.1/smeldr-cli-linux-amd64
curl -sL https://github.com/Smeldr/cli/releases/download/v0.35.1/SHA256SUMS | grep smeldr-cli-linux-amd64 | sha256sum -c
mv smeldr-cli-linux-amd64 smeldr-cli && chmod +x smeldr-cli

With Go 1.26.5 or later you can instead run go install smeldr.dev/cli/cmd/smeldr-cli@v0.35.1 and drop the ./ below.

Then, with the bootstrap token from step 1:

SMELDR_BOOTSTRAP_TOKEN=<TOKEN> ./smeldr-cli init --url http://localhost:8080 --name <you>

You should see:

OK  connected to http://localhost:8080
OK  token "<you>" created (class human, admin, 365 days)
OK  grants: admin, approver (founder of the organization, D142): this token can ratify Decisions
OK  .smeldr-cli.env written (mode 600; keep it out of version control: add it to .gitignore)
OK  verification passed: the new token acts as admin

That token is yours, and it can ratify. Your AI agent gets its own, with less:

./smeldr-cli token create my-agent editor 30 --class agent --reason "my agent"
./smeldr-cli grant <token_id> editor --reason "my agent"

Point your agent at http://127.0.0.1:8080/mcp and give it that token as a Bearer token.

3. Ask it to propose a Decision.

Propose a Decision: "We never log session tokens."

You should see: a Decision in state proposed.

4. Try to ratify it as the agent.

A Decision has to be placed before it can be ratified. Ask for both in one go:

Place that Decision in the organization, then ratify it.

The agent places it (Decision D1 to the organization ORG1, belongs_to_organization), then tries to ratify and is refused:

{"code": -32001, "message": "forbidden: an agent token never ratifies, supersedes or amends a Decision (D142); a human approver does"}

That is the model at work: an AI agent proposes, a person decides. Now you ratify it:

./smeldr-cli transition Decision D1 --to ratified --reason "We never log session tokens"

D1 is now ratified, it holds, and it no longer awaits anyone.

5. Ask what applies to a file.

Which Decisions apply to internal/billing/handler.go in acme/app?

The prompt must name a repository. On a fresh server the answer lists the path as uncovered, even for an organization-wide Decision, because no Area covers it:

{"repository":"acme/app","areas":[],"decisions":[],"uncovered":["internal/billing/handler.go"]}

After one Domain, one Area and one coverage rule (four calls):

{"repository":"acme/app","areas":[{"address":"ARE1","name":"Billing","approval_mode":"comment-only","domain":"DOM2","paths":["internal/billing/handler.go"],"rules":["COV1"]}],"decisions":[{"address":"D1","title":"We never log session tokens","state":"ratified","standing":"holds","place":"organization","place_address":"ORG1"}],"uncovered":[]}

That is the model. Next: gate your pull requests, with a GitHub App and a required status check.

What Smeldr gives you

Decisions that stay put

  • Propose, ratify, replace. A ratified Decision is never edited; a new one supersedes it and both stay.
  • Re-evaluate on a date, so nothing silently goes stale (needs ENABLE_EVAL_QUEUE_DRAIN).
  • A Decision is in force (holds), ceased or none, recorded on the item. Who started and who ended it is in the history (needs ENABLE_PROVENANCE).
  • Two detectors flag an inconsistency: a Decision that contradicts another, and a Decision resting on one no longer in force. They flag, they do not prevent.

Places and roles

  • Domains and Areas you name yourself. A domain's people ratify its Decisions; an area's people approve changes to its files.
  • An AI agent can approve changes in one Area when a person has given it that right, for as long as the person says. An agent never ratifies.

A record you can ask

  • Search across every record you may read.
  • Every write records who did it and what kind of actor it was: a person, an AI agent or a job (the bootstrap token and older tokens are unclassified). The full history and the reason, when one is given, need ENABLE_PROVENANCE.
  • Every item says whether it awaits action.

Enforcement in code

  • Ask which Decisions apply to a list of paths in a repository (needs an Area with a coverage rule).
  • Pull request checks (ENABLE_GITHUB, core v1.175.0 or later). In an Area set to requires-approval, with the check required in GitHub, a merge waits until the approver answers; the default comment-only does not wait. Smeldr does not read the code against the text of a Decision: the approver does.

The same model runs content

  • Content types, publishing and scheduling, JSON, HTML and Markdown from one endpoint, sitemap, RSS, JSON-LD, AI indexing, and the same lifecycle and roles. See Use Smeldr as a Go library.

What a Decision looks like

A real Decision from this repo's own history (D59, excerpted for length):

{
  "decision_number": "D59",
  "state": "ratified",
  "body": "Goals are places: new `contains` RelationStore kind (working name) gives Smeldr a first-class, user-defined taxonomy... Any item relates to a Goal via the new kind; the taxonomy is user/org-defined since Goals are already freely created, not a fixed enum.",
  "next_eval_at": null
}

Smeldr's own architecture decisions are tracked as Decision items and ratified the same way any Smeldr-hosted decision is. Full text: DECISIONS.md.

More examples

example/server is a deployable binary with no hard-coded Go content types; define everything at runtime via MCP:

cd example/server
SECRET=$(openssl rand -hex 32) BASE_URL=http://localhost:8080 go run .

Optional subsystems are gated by environment variables (ENABLE_TOKENS, ENABLE_GOVERNANCE, ENABLE_RELATIONS, ENABLE_DYNAMIC_CONTENT, ENABLE_BLOCKS, ENABLE_MEDIA, ENABLE_SOCIAL, ENABLE_WEBHOOKS, ENABLE_PROVENANCE, ENABLE_STRUCTURAL_SWEEP, ENABLE_AGENTS, ENABLE_GITHUB, OAUTH_ISSUER). ENABLE_GITHUB turns on gated merges for a GitHub repository with environment variables only (see docs/SELF_HOSTING.md). Set any to a non-empty value to enable that subsystem. See example/server/main.go for the full variable reference and wiring order.

Reference

Content types and the Go library: CONTENT.md
Full API reference: REFERENCE.md
Self-hosting (release binaries, config, backup/restore): SELF_HOSTING.md
Web docs: smeldr.dev/docs

For full token management reference (create, list, revoke) see REFERENCE.md: Token management.
For draft preview tokens see REFERENCE.md: Draft preview.


License

AGPL v3: free for individuals, open source projects, and companies building their own sites. A commercial license will be available for organisations running Smeldr as a hosted service. See COMMERCIAL.md.

Related Skills

View on GitHub
GitHub Stars10
CategoryDevelopment
Updated3h ago
Forks0

Languages

Go

Trust signals

97/100

From repository metadata: license, adoption, age and documentation. Not a code audit — see the Safety scan above for what the skill file itself contains.

1 info
core — MCP Server: Install & Safety Check | SkillAgent