context-engineering
Skill1 starsChanged 9 months agoMITView on GitHub
Context Engineering patterns for AI development and prompting. Use when the user wants to reduce tokens, avoid lost-in-the-middle, and structure prompts using Skeleton-of-Thought, token-efficient diff updates, XML tagging, symbolic variables, negative constraints, or LLMBundle-style context packaging.
131 other projects use a version of this.
Adopted by
Most recently taken up by
- thistleknot/skillstheir own version, first seen Nov 8, 2026
- gerivdb/SKILLStheir own version, first seen Nov 8, 2026
- ishandutta2007/Awesome-Agent-Skillstheir own version, first seen Nov 8, 2026
- MMACABRE/SKILLStheir own version, first seen Nov 8, 2026
- gopalparashar421/agent-skillstheir own version, first seen Nov 8, 2026
- komluk/scaffoldingtheir own version, first seen Nov 7, 2026
Used with
Projects with it also use using-agent-skills, idea-refine and 10 more.
Other files people use alongside this one.
Files found in the same public projects as a version of this one, more often than they turn up anywhere else. Each project counts once, large collections count for less, and this file's own repository is left out.
LLl0k0laDSkillusing-agent-skills
Use when starting a session or when you need to discover which skill applies to the current task. This is the meta-skill that governs how all other skills are discovered and invoked.
Also in 36 projects that use this
LLl0k0laDSkillidea-refine
Refine ideas through structured divergent and convergent thinking. Use "idea-refine" or "ideate" to trigger.
Also in 44 projects that use this
HK-hubSkilldeprecation-and-migration
Manages deprecation and migration. Use when removing old systems, APIs, or features. Use when migrating users from one implementation to another. Use when deciding whether to maintain or sunset existing code.
Also in 40 projects that use this
MrCipherSmithSkillconstraint-driven-development
Use when a project needs a persistent, measurable quality bar — starting a project without documented standards, 'set up constraints', or when coverage/perf/a11y thresholds get re-debated per-PR. Produces CONSTRAINTS.md with enforceable numbers, ratchets, and a guard against silent weakening. NOT for throwaway prototypes or a one-off CI setup.
Also in 14 projects that use this
HK-hubSkillsource-driven-development
Grounds every implementation decision in official documentation. Use when you want authoritative, source-cited code free from outdated patterns. Use when building with any framework or library where correctness matters.
Also in 44 projects that use this
- +6 more from LLl0k0laD
- +1 more from HK-hub
Other versions131 projects use a version of this.
Word for word · 0
None found.
Edited · 0
None found.
Wrote their own version · 131
- addyosmani/agent-skills★ 114ksame name
- bojieli/ai-agent-book-projects★ 53ksame name
- bojieli/ai-agent-book★ 53ksame name
- rohitg00/pro-workflow★ 2.9ksame name
- mrgoonie/claudekit-skills★ 2.2ksame name
- kdlbs/kandev★ 1.1ksame name
- liza-mas/liza★ 418same name
- typv/nest-turbo-starter★ 224same name
- VAMFI/claude-user-memory★ 206same name
- shashankswe2020-ux/whoop-mcp★ 174same name
121 more not listed
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 repository15 other files it gives its agents.
- .cursor/rules/AGENT.mdcCursor rule
- .cursor/rules/AI Text Humanizer Specialist.mdcCursor rule
- .cursor/rules/App_reviewer.mdcCursor rule
- .cursor/rules/maintainer.mdcCursor rule
- .cursor/rules/production.mdcCursor rule
- .cursor/rules/Project_Manager.mdcCursor rule
- .cursor/rules/README.mdcCursor rule
- .cursor/rules/rules.mdcCursor rule
- agent-hubSkill
- blueprintkitSkill
- core-engineeringSkill
- co-star-uiSkill
- erc8004-agent-creatorSkill
- startupSkill
- webmcp-agentsSkill
The file
We split this skill into the rules it gives an agent
10 rules. 0 are common, 6 are distinctive, and 4 are very specific to this project.
0
Common
Most of the 117 edited versions we read keep these.
6
Distinctive
This author's own choices. Worth a look.
4
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Distinctive: line 15
Before any user applies these techniques, always do the following:
- Distinctive: line 20
Only include the files that matter for the current change, not the whole repo.
- Very specific: line 22
Use the XML tags in this skill (<global_rules>, <file>, <task>) so any LLM knows what is rules, what is code, and what is the task.
- Distinctive: line 24
Always end prompts with instructions like “No preamble.
- Distinctive: line 72
Goal: Stop paying for full-file rewrites.
- Distinctive: line 106
Goal: Create hard boundaries between rules, files, and tasks so the model does not mix contexts.
- Distinctive: line 158
Goal: Remove unneeded prose; pay only for code or the minimal output you want.
- Very specific: line 227
If you have the external tool llmbundle installed:
- Very specific: line 229
Run llmbundle on the files or directories you want to share (see its README for exact commands and security guidance).
- Very specific: line 231
Treat the outer bash structure as a container and only modify file contents between the heredoc EOF markers, as described in the llmbundle …
“Common” is measured: kept by at least 6 in 10 of the 117 edited versions of this file we could read. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Context Engineering Skill
Modern LLMs bill you for every token you send. Large, unstructured prompts lead to higher cost and worse reasoning (lost-in-the-middle). This skill defines practical Context Engineering techniques and shows how to apply them in your current setup, regardless of which editor or AI product a user has.
0. Non‑Negotiable Pre‑Actions
Before any user applies these techniques, always do the following:
- Define the objective in one sentence.
Example: “Add input validation to app.py and factor shared logic into utils/transform.py.” - Limit the scope.
Only include the files that matter for the current change, not the whole repo. - Wrap context with hard boundaries.
Use the XML tags in this skill (<global_rules>,<file>,<task>) so any LLM knows what is rules, what is code, and what is the task. - State negative constraints.
Always end prompts with instructions like “No preamble. No explanations. Output code or SEARCH/REPLACE blocks only.” - Test on a small example first.
Try the pattern on one small function or file before applying it to a large refactor. If the model output is noisy, tighten constraints and retry.
These pre‑actions are model‑ and tool‑agnostic and should be followed by every user to make the skill reliable.
1. Skeleton-of-Thought (SoT) Prompting
Goal: Give the model the shape of your code instead of full implementations.
How it looks (blueprint instead of full file):
def process_data(input_str: str) -> dict:
"""Parses raw string into a structured dict."""
...
class ReportBuilder:
"""Builds JSON reports from normalized data."""
def build(self, data: dict) -> str:
"""Return JSON summary."""
...Prompt pattern:
I am working on this project. Here is the skeleton:
<file name="pipeline.py">
def process_data(input_str: str) -> dict:
"""Parses raw string into a structured dict."""
...
</file>
Please implement process_data to parse JSON, handle errors, and return a dict.Execution steps:
- Strip function bodies (keep signatures, docstrings, and class layout).
- Send only the skeleton when you want new logic or refactors.
2. Token-Efficient Diff Updates
Goal: Stop paying for full-file rewrites; request focused changes.
Search/replace format:
Do not rewrite the whole file.
Respond only with SEARCH/REPLACE blocks in this format:
SEARCH:
old_code_block
REPLACE:
new_code_blockExample usage:
Here is the current code in handler.py:
<file name="handler.py">
def handle(event):
user = get_user(event["id"])
# TODO: add logging and error handling
return user
</file>
Update it to add logging and catch KeyError. Use SEARCH/REPLACE blocks only.LLMs then return minimal patches instead of re-typing the file.
3. XML Tagging for Modular Context
Goal: Create hard boundaries between rules, files, and tasks so the model does not mix contexts.
Pattern:
<global_rules>
- Follow PEP8.
- Use snake_case for functions.
</global_rules>
<file name="utils.py">
def slugify(name: str) -> str:
...
</file>
<task>
Add a logging decorator to functions in utils.py and apply it to slugify.
</task>Why this works: LLMs are trained to respect XML-like tags as structure. Wrapping each file or rule block in tags keeps the model from blending unrelated parts.
4. Symbolic Variables (Reusable Rules)
Goal: Define long rule sets once, then reference them by handle.
Header section:
[RULE_STRICT_TYPES]:
- Always use Python type hints.
- Use Pydantic models for external I/O.
[RULE_STYLE]:
- Use snake_case for functions and variables.
- Add a one-line docstring to public functions.Later in the prompt:
Implement a user login function. Apply [RULE_STRICT_TYPES] and [RULE_STYLE].This keeps the task-specific part short and readable while still enforcing strong constraints.
5. Negative Constraints (Token Filter)
Goal: Remove unneeded prose; pay only for code or the minimal output you want.
Common constraints:
Constraints:
- No preamble.
- Do not explain the code.
- Output code only.Prompt example:
Refactor the following function to use early returns and clearer naming.
Constraints:
- No preamble.
- No explanation.
- Output code only.6. LLMBundle and Context Packages
LLMBundle (e.g. Context-Engineering/llmbundle) acts as a context manager for multi-file projects.
Desired behavior:
- Wrap each file in
<file name="...">...</file>tags. - Include a header with
<global_rules>and symbolic rule blocks. - Omit noise files like
node_modules/, build artifacts, and lockfiles. - Optionally add a table of contents at the top:
<bundle_index>
- app.py
- utils/transform.py
- tests/test_transform.py
</bundle_index>With LLMBundle, your prompt to an AI agent becomes:
<global_rules>
- Follow PEP8.
- Prefer pure functions when possible.
</global_rules>
<bundle_index>
- app.py
- utils/transform.py
</bundle_index>
<file name="app.py">
...code...
</file>
<file name="utils/transform.py">
...code...
</file>
<task>
Add input validation to app.py and factor shared logic into utils/transform.py.
</task>Using llmbundle (optional helper)
If you have the external tool llmbundle installed:
- Run
llmbundleon the files or directories you want to share (see its README for exact commands and security guidance). - Open the generated script (for example
project.sh) and paste its contents into your LLM conversation. - Treat the outer bash structure as a container and only modify file contents between the heredoc EOF markers, as described in the
llmbundleheader comments.
This skill does not require llmbundle and never executes it. It only describes how to use the tool if the user has chosen to install and verify it independently.
---
## 7. How To Apply This In Your Setup
1. **For new features:** Send a SoT skeleton of relevant files instead of full bodies.\n2. **For edits:** Ask for SEARCH/REPLACE style diffs, not entire files.\n3. **For multi-file work:** Wrap rules, files, and tasks in XML tags.\n4. **For repeated rules:** Define symbolic variables like [RULE_*] once at the top and reference them later.\n5. **For cost control:** Always end prompts with negative constraints (no preamble, no explanations) when you only need code or diffs.\n6. **With LLMBundle:** Use it to automatically package your repo into XML-tagged, token-efficient context before sending it to an AI agent.
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.

