Dicklesworthstone/meta_skill

Rust CLI for managing Claude Code skills: indexing, building, bundling, and sharing. Integrates with CASS for mining coding session history into reusable skills.

License:UnknownLanguage:Rust537

Deep Analysis

Local-first CLI tool for mining and managing Claude Code skills from CASS sessions, supporting dual persistence storage and hybrid search

Recommended

Core Features

SQLite for fast queries, Git archive for audit trail

Combines BM25 full-text search and hash embedding semantic search using RRF fusion algorithm

Extract patterns from CASS-stored coding session history, compile into structured skill specs

Integrated ACIP v1.3 prompt injection protection with trust boundary classification

Supports base/org/project/user four-tier priority

Cross-device skill sync via Git remote repos

JSON output format for automation integration

Technical Implementation

Architecture:Local-first architecture with SQLite as main database, Git as version control backend, Tantivy providing search index
Execution Flow:

Key Components:
Rust
SQLite FTS5
Tantivy
Hash Embedding
ACIP v1.3
Highlights
  • Fully local-first, zero cloud dependency
  • Dual persistence design balances performance and traceability
  • Hybrid search combines keyword and semantic understanding
  • Built-in ACIP prompt injection protection
  • Four-tier priority layered management
Use Cases
  • Distill repetitive AI programming workflows into reusable skills
  • Team sharing and syncing programming best practices
  • Build personal or organizational programming knowledge base
  • Safely process session data that may contain malicious prompts
Limitations
  • Some commands still stub implementations
  • Requires source code compilation to install
  • Requires Rust 1.85+ version
Tech Stack
Rust 1.85+SQLite + FTS5Tantivyζœη΄’εΌ•ζ“ŽGitACIP v1.3

ms

ms - Meta Skill CLI for mining CASS sessions into reusable skills

CI
License: MIT

Meta Skill (ms) is a local-first CLI that mines CASS sessions into durable, production-grade skills. It stores skills with dual persistence (SQLite + Git), supports hybrid search (BM25 + hash embeddings), and enforces safety boundaries during extraction.

Quick Install

# Build & install from source
cargo install --path .

Or run without installing:

cargo run -- <COMMAND>

Works on Linux, macOS, and Windows. Requires Rust 1.85+ (Edition 2024).


TL;DR

The Problem: Agent workflows get rediscovered repeatedly. CASS captures raw sessions, but there is no systematic way to distill them into reusable skills.

The Solution: ms extracts patterns, compiles them into structured skill specs, and stores them with provenance so they can be searched, loaded, and reused.

Why Use ms?

Feature What It Does
Dual Persistence SQLite for fast queries + Git archive for auditability
Hybrid Search BM25 full-text + hash embeddings fused with RRF
Robot Mode JSON output for automation (--robot)
Safety Controls ACIP prompt-injection quarantine + trust boundaries
Structured Skills Deterministic SKILL.md ↔ spec round-trip
Layering Priority layers (base/org/project/user)
Local-First All processing is local by default

Quick Example

# Initialize a local ms root (.ms/)
ms init

# Configure a project skill path
ms config skill_paths.project '["./skills"]'

# Index SKILL.md files
ms index

# Search and inspect
ms search "error handling"
ms show rust-error-handling

Prepared Blurb for AGENTS.md Files

## ms β€” Meta Skill CLI

Local-first CLI for mining CASS sessions into production-grade skills. Maintains dual persistence (SQLite + Git), supports hybrid search (BM25 + hash embeddings via RRF), and enforces safety boundaries with ACIP prompt-injection quarantine.

### Core Workflow

```bash
# 1. Initialize in a project
ms init

# 2. Configure skill paths
ms config skill_paths.project '["./skills"]'

# 3. Index skills
ms index

# 4. Explore and search
ms list
ms search "error handling"
ms show rust-error-handling
```

### Key Flags

```
--robot                     # JSON output to stdout
--verbose                   # More logs
--config /path/to/config    # Explicit config path
```

### Storage

- Local root: ./.ms (project) or ~/.local/share/ms (global)
- DB: <ms_root>/ms.db
- Git archive: <ms_root>/archive/
- Index: <ms_root>/index/

### Notes

- Some commands are implemented as stubs (build, load, requirements, prune, update).
- ACIP safety scanning is implemented under `ms security`.

Design Philosophy

ms is built around a few core principles:

Local-First and Auditable

  • SQLite + Git: Fast queries and a full audit trail.
  • No cloud dependency: CASS data stays local unless you explicitly sync it.
  • Deterministic outputs: Skills can round-trip between spec and markdown.

Safety by Default

  • Trust boundaries: User/assistant/tool/file content is classified before extraction.
  • Quarantine: Prompt-injection signals are quarantined with safe excerpts.
  • Auditability: ACIP decisions are stored with replay commands (opt-in).

Composition Over Ceremony

  • JSON in robot mode for easy pipelines.
  • Human-friendly output by default.
  • Commands are designed to compose with Unix tooling.

How ms Compares

Feature ms Manual Wiki Raw CASS Ad-hoc Notes
Structured skills βœ… ⚠️ Depends ❌ ❌
Queryable βœ… SQLite + FTS ⚠️ Search only ⚠️ CLI grep ❌
Audit trail βœ… Git archive ⚠️ If tracked ❌ ❌
Safety filters βœ… ACIP ❌ ❌ ❌
Hybrid search βœ… BM25 + semantic ❌ ❌ ❌
CLI automation βœ… Robot mode ⚠️ ⚠️ ❌

Origins & Authors

Created by Jeffrey Emanuel to transform raw agent sessions into reusable, versioned skills. The goal is to preserve hard-won workflows with the same rigor we apply to production code.


Getting CASS Data Ready

ms build and related mining workflows require CASS sessions. CASS stores session history as JSONL and exposes a CLI (cass).

Quick Check

cass health

Typical Session Query

cass search "error handling" --robot --limit 5

Common Config

[cass]
auto_detect = true
cass_path = "/path/to/cass"
session_pattern = "*.jsonl"

Installation

From Source (Recommended)

git clone https://github.com/Dicklesworthstone/meta_skill.git
cd meta_skill
cargo build --release
cp target/release/ms ~/.local/bin/

Install via Cargo

cargo install --git https://github.com/Dicklesworthstone/meta_skill.git

Prebuilt binaries are not yet published. If/when they are, this README will be updated.


Quick Start

1. Initialize

ms init

2. Add Skill Paths

ms config skill_paths.project '["./skills"]'

3. Index

ms index

4. Search + Inspect

ms list
ms search "error handling"
ms show rust-error-handling

Commands

Global flags:

--robot     # JSON output to stdout
--verbose   # Increase logging verbosity
--quiet     # Suppress non-error output
--config    # Explicit config path

ms init

ms init
ms init --global
ms init --force

Creates:

  • .ms/ms.db (SQLite)
  • .ms/archive/ (Git)
  • .ms/index/ (search index)
  • .ms/config.toml

ms index

ms index
ms index ./skills /other/path
ms index --force

ms list

ms list
ms list --tags rust --layer project --limit 50
ms list --robot

ms show

ms show rust-error-handling
ms show rust-error-handling --full
ms show rust-error-handling --meta

ms search

ms search "error handling"
ms search "async" --search-type bm25
ms search "async" --search-type semantic

ms load

Loads skills with progressive disclosure and token budgets.

ms load rust-error-handling --level overview
ms load rust-error-handling --pack 2000

ms suggest

Captures context, computes a fingerprint, and returns suggestions with cooldown suppression.

ms suggest
ms suggest --cwd /path/to/project

ms feedback

Record or list skill feedback signals.

ms feedback add rust-error-handling --positive --comment "helpful"
ms feedback add rust-error-handling --rating 4
ms feedback list --limit 20
ms feedback list --skill rust-error-handling

ms outcome

Mark the latest usage of a skill as success or failure (implicit outcome signal).

ms outcome rust-error-handling --success
ms outcome rust-error-handling --failure

ms experiment

Create and list basic A/B experiment records.

ms experiment create rust-error-handling --variant control --variant concise
ms experiment create rust-error-handling --scope slice --scope-id intro --variant control --variant alt
ms experiment list
ms experiment list --skill rust-error-handling

ms remote

Manage multi-machine sync remotes. Git remotes are cloned into .ms/sync/remotes/<name> and
only fast-forward updates are allowed (non-fast-forward updates fail).

ms remote add origin /path/to/archive --type filesystem
ms remote add origin https://github.com/user/skills.git --type git --branch main --auth token --token-env GIT_TOKEN
ms remote add origin git@github.com:user/skills.git --type git --auth ssh --ssh-key ~/.ssh/id_rsa
# Optional: token username (defaults to x-access-token)
ms remote add origin https://github.com/user/skills.git --type git --auth token --token-env GIT_TOKEN --username git
# Optional: SSH passphrase env var (if key is encrypted)
ms remote add origin git@github.com:user/skills.git --type git --auth ssh --ssh-key ~/.ssh/id_rsa --ssh-passphrase-env SSH_KEY_PASSPHRASE
ms remote set-url origin https://github.com/user/skills.git --branch main --auth token --token-env GIT_TOKEN
ms remote set-url origin https://github.com/user/skills.git --clear-auth --clear-branch
ms remote list
ms remote disable origin

ms sync

Synchronize skills across remotes.

ms sync
ms sync origin --dry-run
ms sync --status

Robot mode status schema (example):

{
  "status": "ok",
  "machine": {
    "id": "workstation-a1b2c3",
    "name": "workstation",
    "last_syncs": {
      "origin": "2026-01-15T06:52:00Z"
    }
  },
  "remotes": [
    {
      "name": "origin",
      "type": "git",
      "url": "https://github.com/user/skills.git",
      "branch": "main",
      "auth": {
        "kind": "token",
        "token_env": "GIT_TOKEN",
        "username": "x-access-token"
      },
      "enabled": true,
      "direction": "bidirectional",
      "auto_sync": false,
      "exclude_patterns": [],
      "include_patterns": []
    }
  ],
  "last_full_sync": {
    "origin": "2026-01-15T06:52:00Z"
  },
  "status_counts": {
    "Synced": 42,
    "Conflict": 1
  }
}

ms machine

ms machine info
ms machine rename "dev-laptop"

ms conflicts

ms conflicts list
ms conflicts resolve rust-error-handling --strategy prefer-local --apply

ms shell

Print shell hook snippets for bash/zsh/fish to call ms suggest with rate limiting.

ms shell --shell bash
ms shell --shell zsh
ms shell --shell fish

ms edit

ms edit rust-erro