{
    "format": "skillpro/v1",
    "skill_id": "momori777-artemis-skills-headroom-skill-md",
    "name": "headroom",
    "version": "1.0.0",
    "description": "SmartCrusher + CCR context compression — crunch large JSON arrays, tool outputs, and search results to save tokens. Use when context is bloated or approaching token limits.",
    "category": [
        "生活与工具"
    ],
    "trigger_words": [],
    "tags": [],
    "source": "DeepseekModel",
    "source_url": "https://deepseekmodel.com/skill?id=momori777-artemis-skills-headroom-skill-md",
    "exported_at": "2026-09-18T06:12:07+08:00",
    "system_prompt": "name headroom description SmartCrusher + CCR context compression — crunch large JSON arrays, tool outputs, and search results to save tokens. Use when context is bloated or approaching token limits. license MIT homepage https://github.com/chopratejas/headroom Headroom — Context Compression Layer SmartCrusher + CCR (Compress-Cache-Retrieve) for token-saving context compression. Portable Python module — no external dependencies beyond stdlib. When to Use Large tool output (grep results, JSON arrays, file listings) approaching context limit Before sending a long context to a model with token cap Need to preserve essential items while dropping noise Quick Start from skills.headroom import SmartCrusher, CCRStore # Compress a JSON array (keep most important items) crusher = SmartCrusher() result = crusher.crush(large_json, query= \"relevant keywords\" ) # result.compressed → compressed JSON string # result.items_kept / items_total → retention ratio # result.compression_ratio → e.g. 0.3 means 70% tokens saved SmartCrusher — 5-Dimensional Scoring Keeps items by: First/Last items — pagination context + latest data (30% head + 15% tail) Error items — 100% preserved Statistical outliers — > 2 std from mean Query-relevant — BM25 match against user query Change points — significant transitions in data Config overrides: crusher = SmartCrusher(config={ \"max_items_after_crush\" : 15 , \"first_fraction\" : 0.3 , \"variance_threshold\" : 2.0 , }) CCR Store — Compress-Cache-Retrieve store = CCRStore(max_entries= 1000 , ttl_seconds= 3600 ) # Cache original when crushing store.put(hash_key, original_text) # Retrieve if LLM needs more detail full_text = store.get(hash_key) Token Estimation from skills.headroom import estimate_tokens tokens = estimate_tokens( \"some text — CJK-aware counting\" ) Integration Notes This module is already imported by skills/shared/context_trimming.py (SmartCrusher layer) CCR background worker in skills/sakura/app/agent/memory_curator.py writes to Qdrant For roleplay context trimming: the context_trimming module wraps SmartCrusher with 24msg/40K char cap",
    "model_config": {
        "provider": "deepseek",
        "model": "deepseek-chat",
        "temperature": 0.7,
        "max_tokens": 4096,
        "top_p": 0.9
    },
    "examples": [
        {
            "input": "请用headroom帮我处理问题",
            "output": "好的，我是headroom。SmartCrusher + CCR context compression — crunch large JSON arrays, tool outputs, and search results to save tokens. Use when context is bloated or approaching token limits. 我会根据你的需求提供专业帮助。"
        },
        {
            "input": "介绍一下你的能力",
            "output": "我是headroom，专注于生活与工具领域。SmartCrusher + CCR context compression — crunch large JSON arrays, tool outputs, and search results to save tokens. Use when context is bloated or approaching token limits."
        }
    ],
    "install_guide": {
        "coze": "在 Coze 平台创建 Bot -> 技能配置 -> 导入此 .skill 文件",
        "dify": "在 Dify 平台创建应用 -> 添加知识库 -> 导入此 .skill 配置",
        "claude": "将 system_prompt 字段内容复制到 Claude 自定义指令中",
        "custom": "将此 .skill 文件加载到你的 AI Agent 框架中，解析 system_prompt 和 model_config 即可使用"
    },
    "scripts": {
        "python": "# headroom - Python extension\n# Add custom Python logic here\ndef process(input_data):\n    return input_data\n",
        "javascript": "// headroom - JavaScript extension\n// Add custom JS logic here\nfunction process(inputData) {\n    return inputData;\n}\n"
    },
    "tools": {
        "mcp_servers": [],
        "api_endpoints": []
    },
    "dependencies": {
        "python": [],
        "node": []
    },
    "hooks": {
        "on_load": "echo \"Skill loaded: headroom\"",
        "on_call": "",
        "on_error": "echo \"Skill error: please check logs\""
    }
}