Context Pack logo

Context Pack

Organization
Rune-kit
context-pack

Creates structured handoff briefings between agents. Use when delegating complex work to subagents that would otherwise lose context. Packages task context, constraints, and progress into a compact packet that subagents can consume without re-reading the full conversation. Prevents the 'lost context' problem in multi-agent delegation.

Overview

PublisherRune-kit
Repositoryrune
Skill namecontext-pack
Stars
88
Forks
26
Bundled files
4
LicenseMIT
Links
  • Markdown instructions

    A SKILL.md file the model loads on demand, so it only costs tokens when a request actually matches.

  • Works with any LLM

    AI skills are plain Markdown, not provider-specific code, so this works with GPT, Claude, Gemini, Grok, or a local model.

  • 4 bundled files

    Scripts, templates, and references the model can read while it works. Files are read-only and never executed.

  • Open source

    Published by Rune-kit on GitHub. Read the source before you install it.

Installation

Install the Context Pack AI skill in TypingMind to use it with any LLM, or drop it into another agent that reads SKILL.md.

1

Install in TypingMind

TypingMind installs a skill straight from its GitHub folder — it reads SKILL.md, bundles the resource files, and stores the result locally.

  1. Open the app and go to Plugins → Skills.
  2. Choose "Install from GitHub".
  3. Paste the skill folder URL below and confirm.
    https://github.com/Rune-kit/rune/tree/master/skills/context-pack
  4. Enable the skill in any chat where you want it available.
Plugins → Skills → Add skill → From GitHub URL, then paste the folder URL and press Continue.
2

Install in another agent

Any agent that reads the Agent Skills format can use this skill — copy the folder into that agent's skills directory.

Claude Code — .claude/skills
git clone --depth 1 https://github.com/Rune-kit/rune.git /tmp/rune
mkdir -p .claude/skills
cp -r /tmp/rune/skills/context-pack .claude/skills/context-pack
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Context Pack in any TypingMind chat and the model takes it from there. Its name and description sit in the system prompt, and the moment a request matches, the model loads the full instructions itself — you never invoke it by hand, and it costs no tokens until it is actually used.

The model loads Context Pack on its own as soon as a request matches it.

Works with any AI model

AI skills are plain Markdown instructions rather than provider-specific code, so Context Pack is not tied to the model it was written for. Install it once in TypingMind and use it with GPT-5, Claude, Gemini, Grok, DeepSeek, Mistral, Llama, or a local model you run yourself — all on your own API keys.

  • Loaded only when it is needed

    The system prompt carries just the name and description. The instructions are fetched on the first matching request, so an idle skill costs nothing.

  • Switch models mid-chat

    Because the skill is instructions rather than code, changing model does not break it — the next model reads the same SKILL.md.

Skill instructions

This is the SKILL.md content the model loads. Read it before installing — a skill is instructions your model will follow.

context-pack

Purpose

When a parent agent delegates work to a subagent, critical context gets lost — the subagent starts fresh without knowing what was tried, what failed, what constraints apply, or what the parent already decided. Context-pack solves this by creating structured handoff briefings (context packets) that compress the essential information into a compact, parseable format. The packet is small enough to fit in a subagent's system prompt but complete enough to prevent redundant work and constraint violations.

Triggers

  • Called by cook, team, rescue before spawning subagents
  • Called by any L1/L2 skill that delegates work to another skill
  • Manual: when user says "hand off", "delegate", "split this task"

Calls (outbound)

  • session-bridge (L3): read persisted state for inclusion in packet
  • context-engine (L3): check current context budget before deciding packet size

Called By (inbound)

  • cook (L1): before Phase 2-5 subagent spawning
  • team (L1): before dispatching parallel workstreams
  • rescue (L1): before delegating module-level refactoring
  • scaffold (L1): before delegating component generation
  • Any L2 skill that spawns subagents

Data Flow

Feeds Into →

  • All subagent invocations: context packet → subagent system prompt
  • completion-gate (L3): packet's success criteria → claim validation baseline

Fed By ←

  • Parent agent conversation: decisions, constraints, failed attempts
  • session-bridge (L3): persisted state from prior sessions
  • plan (L2): phase files with task breakdowns

Workflow

  1. COLLECT — Gather context from the current conversation:

    • Task description and user intent (verb-led behavioral phrasing)
    • Decisions already made (and WHY)
    • Constraints and hard-stops
    • Failed attempts (what NOT to do)
    • Files already read or modified
    • Current progress state
    • Type Surface — types / function signatures / contracts that callers cross. These are the durable spine of the brief.
  2. COMPRESS — Reduce to essential information:

    • Strip conversational noise
    • Deduplicate repeated context
    • Prioritize by relevance to the delegated task
    • Target: <500 tokens for simple tasks, <1500 tokens for complex
  3. STRUCTURE — Format as a context packet (v2 — see Output Format and references/brief-template.md)

  4. VALIDATE — Check packet completeness:

    • Does it include the task goal?
    • Does it include constraints that could cause failure?
    • Does it include what was already tried?
    • Does it include ### Out of scope? (mandatory)
    • Does it include ### Type Surface (mandatory if task >= 300 tokens)?
    • Is it small enough for the target agent's context budget?
  5. PHASE 4.5 — SMELL TESTS — Run mechanical regex gates before emit. See references/durability-rules.md.

    RegexTierReason
    \b\S+\.[a-z]{1,4}:\d+\bBLOCKfile:line reference (e.g., login.ts:42) — line numbers go stale
    ^- \S*[\\/]\S+\.(ts|js|py|go|rs|java)\b outside ### Files TouchedBLOCKPath-only bullet in narrative
    \b(line |on line )\d+\bBLOCK"line 42" / "on line 100"
    \b(src|lib|app)/\S+ in narrative paragraphsWARNPath mention; verify it belongs in Files Touched section
  6. EMIT — Send the validated packet to the receiving agent.

Output Format (v2)

markdown
## Context Packet

**Task**: [One-line behavioral description, verb-led]
**Parent**: [delegating skill]
**Scope**: [type names / module names — NOT file paths]

### Decisions Made
- [Decision]: chose [X] over [Y] because [reason]

### Constraints
- MUST: [behavioral assertion]
- MUST NOT: [behavioral prohibition]
- BLOCKED BY: [contract dependency, not file path]

### Already Tried
- [approach] — [observable failure mode]

### Type Surface (durable)
- `TypeName { field: type }` — [what it represents]
- `Module.method(input: T): Result<O, E>` — [contract]

### Files Touched (locator-only, may rename)
- `path/to/file.ts` (TypeName, Module.method) — [behavioral hint]

### Acceptance Criteria
- [ ] [verb-led testable statement starting with: accepts, rejects, produces, notifies, persists, retries, times-out, validates, returns, dispatches, redirects, throws, logs, increments, decrements, retrieves, emits, caches, invalidates, authenticates]
- [ ] ...

### Out of scope
- [Thing the receiver should NOT do]
- (or "(none)" if explicitly empty)

### Progress
- [partial state if mid-handoff — omit if fresh start]

Full template + worked examples: references/brief-template.md.

Variant: Agent Brief (Async / Durable Handoff)

The standard packet (above) is for immediate sub-agent dispatch in the same session. When the handoff target is async — issue tracker, scheduled cron agent, rune:autopilot (Pro) for multi-session work, or any receiver that may execute hours or days later — switch to the agent brief variant.

Agent brief adds two durability principles on top of the standard packet:

  1. Durability over precision — describe interfaces, types, and behavioral contracts. NEVER reference line numbers in narrative. File paths only in ### Files Touched (locator-only, may rename).
  2. Behavioral, not procedural — describe WHAT the system should do, not HOW to implement it. The async agent will explore the codebase fresh.

Additional BLOCK-tier checks for agent briefs (on top of the standard smell tests):

  • **Category:** line present (bug / enhancement / refactor)
  • Both **Current behavior:** and **Desired behavior:** sections present
  • Acceptance criteria are independently testable (each pass/fail alone)
  • **Key interfaces:** names types/functions, not file paths

Full template + worked examples: references/agent-brief.md.

Returns

FieldTypeDescription
packetmarkdownStructured context packet ready for subagent injection
token_estimatenumberEstimated token count of the packet
completenessenumfull / partial / minimal — how much context was captured
warningsstring[]Missing context that could cause subagent failure

Constraints

  1. MUST include task goal and acceptance criteria — subagent needs to know when it's done
  2. MUST include failed attempts — prevents subagent from repeating mistakes
  3. MUST include hard-stop constraints — prevents constraint violations in delegated work
  4. MUST NOT exceed 2000 tokens — context packets that are too large defeat the purpose
  5. MUST NOT include full file contents — use type names + summaries instead
  6. MUST NOT fabricate context — only include information from the actual conversation
  7. MUST emit ### Out of scope section — empty (none) allowed, missing section is rejected by completion-gate
  8. MUST emit ### Type Surface section for tasks >= 300 tokens — durable contract spine
  9. MUST pass all BLOCK-tier smell tests — no file:line references, no "line N", no narrative path-only bullets
  10. MUST use behavior verbs in Acceptance Criteria — shape verbs ("is defined", "has property") rejected

Sharp Edges

Failure ModeSeverityMitigation
Packet too large (>2000 tokens)HIGHCompress aggressively — type names not file contents, decisions not discussions
Missing constraint causes subagent violationCRITICALAlways scan for MUST/MUST NOT in parent conversation
Stale context from prior session includedMEDIUMCross-check session-bridge state with current files
Over-constraining subagent with parent's approachMEDIUMInclude constraints and goals, not implementation approach (unless approach is the constraint)
File:line references in packet (rotting briefs)CRITICALPhase 4.5 BLOCK gate — regex \b\S+\.[a-z]{1,4}:\d+\b catches them; rewrite to type/function names
Narrative paragraphs with bare paths (src/auth/)MEDIUMWARN tier — surface and rewrite or move to Files Touched table
Missing Type Surface section for non-trivial taskHIGHMandatory for tasks >= 300 tokens; the durable spine is what survives file moves
Missing Out of scope sectionHIGHAlways required (even "(none)"); completion-gate rejects briefs without it
Acceptance Criteria using shape verbs ("is defined", "has property")MEDIUMRewrite to behavior verbs from the whitelist
Async handoff (issue tracker / autopilot / scheduled run) emitted as standard packetHIGHSwitch to agent-brief variant (references/agent-brief.md) — standard packet rots when receiver runs hours/days later. Brief adds durability rules: behavioral not procedural, no line numbers in narrative
Agent brief with file:line references in narrative ("change auth.ts:42")CRITICALBrief BLOCK gate — line numbers go stale on first edit. Reference type names, function signatures, contracts instead. File paths only in ### Files Touched
Agent brief without **Current behavior:** AND **Desired behavior:** splitHIGHBrief BLOCK gate — without the delta explicit, async agent cannot verify when work is done

Self-Validation

SELF-VALIDATION (run before emitting output):
- [ ] Packet includes a clear task goal (verb-led)
- [ ] Packet includes acceptance criteria (verb-led, testable, not vague)
- [ ] All MUST/MUST NOT constraints from parent are present
- [ ] Failed attempts are listed (if any exist)
- [ ] Token estimate is under 2000
- [ ] No full file contents embedded (type names + paths only)
- [ ] No file:line references anywhere (regex check)
- [ ] No bare-path narrative bullets outside Files Touched
- [ ] ### Out of scope section present (even if "(none)")
- [ ] ### Type Surface section present (if task >= 300 tokens)
- [ ] Files Touched entries include (TypeName, function) annotations
IF ANY check fails → fix before reporting done. Do NOT defer to completion-gate.

Done When

  • Context packet emitted in structured format
  • Token estimate calculated and within budget
  • All constraints from parent conversation captured
  • Completeness level assessed honestly
  • Self-Validation checklist: all checks passed

Cost Profile

~200-500 input tokens (scanning conversation) + ~300-800 output tokens (generating packet). Haiku model — minimal cost per invocation.

Scope guardrail: Do not implement code changes, run tests, or modify files. Only produce context packets for handoff. If asked to do more, defer to the delegated skill.

Bundled files

The model reads these on demand while the skill is loaded. They are exposed as readable files and are never executed.

Frequently asked questions

What does the Context Pack AI skill do?

Creates structured handoff briefings between agents. Use when delegating complex work to subagents that would otherwise lose context. Packages task context, constraints, and progress into a compact packet that subagents can consume without re-reading the full conversation. Prevents the 'lost context' problem in multi-agent delegation.

Why use Context Pack on TypingMind?

Because you install it once and use it with any model. Context Pack is plain Markdown rather than provider-specific code, so the same skill runs on GPT-5, Claude, Gemini, Grok, or a local model — and you can switch model mid-chat without it breaking. TypingMind runs on your own API keys, so you pay providers directly instead of a per-seat subscription, and your skills and chats stay in your own storage.

How do I install Context Pack in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/Rune-kit/rune/tree/master/skills/context-pack. TypingMind reads its SKILL.md and bundles its files and installs it as a skill you can enable per chat.

Which AI models can use Context Pack?

Any model you connect in TypingMind. AI skills are plain Markdown instructions rather than provider-specific code, so GPT, Claude, Gemini, Grok, and local models can all load this skill when a request matches it.

How many AI models can I use with Context Pack?

As many as you like. As long as a model supports skills, you can use Context Pack with it — GPT, Claude, Gemini, Grok, DeepSeek, Mistral, Llama and more — all on TypingMind with your own API keys.

Is the Context Pack AI skill free?

Yes. It is published on GitHub by Rune-kit under the MIT license. You only pay your own AI provider for the tokens you use.

What are AI skills?

An AI skill is a reusable instruction bundle that teaches an AI model how to do one specific task. It follows the open Agent Skills format: a SKILL.md file with a name and description, plus any scripts, templates or reference files the model may need. The model reads the instructions only when your request matches the skill, so an installed skill costs nothing until it is used.

How are AI skills different from plugins or MCP servers?

A plugin or MCP server gives a model new tools to call — code that runs somewhere and returns a result. An AI skill gives the model knowledge and process instead: how to approach a task, which steps to follow, what good output looks like. Skills are plain Markdown, so they need no server, no API key and no runtime, and they work with any model.

View all

Set up your own AI workspace now

Get notified about new features and future giveaways by subscribing to our newsletter 👇