feat: import Easy Tempeh Bacon & fix Dill Pickles

Import Easy Tempeh Bacon recipe.

Fix Easy Refrigerator Dill Pickles recipe.

Update project guidelines and initialize caveman rules.
This commit is contained in:
nιcнolaѕ wιlde
2026-08-04 21:03:13 -07:00
parent 10d38535c1
commit f1b64ee1af
17 changed files with 399 additions and 54 deletions

View File

@ -44,3 +44,5 @@
- I have imported the Watermelon Agua Fresca recipe (Issue #1410).
- I have imported the Applied Kitchen Guacamole recipe (Issue #1409).
- I have imported the Dry Fruit and Nut Energy Bars recipe (Issue #1411).
- I have imported the Easy Tempeh Bacon recipe.

View File

@ -0,0 +1,32 @@
# RTK - Rust Token Killer (Google Antigravity)
**Usage**: Token-optimized CLI proxy for shell commands.
## Rule
Always prefix shell commands with `rtk` to minimize token consumption.
Examples:
```bash
rtk git status
rtk cargo test
rtk ls src/
rtk grep "pattern" src/
rtk find "*.rs" .
rtk docker ps
rtk gh pr list
```
## Meta Commands
```bash
rtk gain # Show token savings
rtk gain --history # Command history with savings
rtk discover # Find missed RTK opportunities
rtk proxy <cmd> # Run raw (no filtering, for debugging)
```
## Why
RTK filters and compresses command output before it reaches the LLM context, saving 60-90% tokens on common operations. Always use `rtk <cmd>` instead of raw commands.

View File

@ -0,0 +1,77 @@
# context-mode routing for Antigravity CLI
context-mode MCP tools are installed for this agy session. Use them when the
task analyzes, counts, filters, compares, searches, parses, transforms, fetches,
or otherwise processes data. Raw bytes should stay in the sandbox; only the
derived answer should enter the conversation.
## Do not dump — derive (most common mistake)
Do NOT use `context-mode/ctx_execute_file` or `ctx_execute` to print a whole file
or a full method/config (e.g. `print(FILE_CONTENT)`, `cat config.yaml`, dumping a
281-line file). That defeats the purpose: on agy the tool's stdout is saved to a
step file that you then read back, so a full dump costs your context window TWICE
(once in the result, once on the follow-up read). Print only the specific value,
matches, count, or known line-range you need:
- WRONG: `ctx_execute_file(path:"config.yaml", language:"python", code:"print(FILE_CONTENT)")`
- RIGHT (value): `code:"import yaml; d=yaml.safe_load(FILE_CONTENT); print(d['active_strategy'])"`
- RIGHT (matches): `code:"import re;[print(i+1,l) for i,l in enumerate(FILE_CONTENT.splitlines()) if 'active_strategies' in l]"`
- RIGHT (known slice): `code:"print(chr(10).join(FILE_CONTENT.splitlines()[190:230]))"`
If you truly need to read a small, exact byte range to edit it, native `Read` /
`view_file` on that range is fine — but never dump an entire file through a hook.
## Tool call surface
Antigravity CLI exposes context-mode tools as `context-mode/<tool>` calls. If
the host uses the generic MCP wrapper, call `call_mcp_tool` with:
- `ServerName`: `"context-mode"`
- `ToolName`: `"ctx_execute"`, `"ctx_execute_file"`, `"ctx_batch_execute"`,
`"ctx_fetch_and_index"`, `"ctx_search"`, or `"ctx_index"`
- `Arguments`: a JSON object for that tool
Do not read `~/.gemini/antigravity-cli/mcp/context-mode/*.json` to discover
schemas. Those files are agy's cached tool schemas and reading them spends
context. Use these argument shapes instead:
- `context-mode/ctx_execute`: `{"language":"python","code":"..."}`
- `context-mode/ctx_execute_file`:
`{"path":"path/to/file","language":"python","code":"..."}`
- `context-mode/ctx_batch_execute`:
`{"commands":[{"label":"...","command":"..."}],"queries":["..."]}`
- `context-mode/ctx_fetch_and_index`: `{"url":"https://...","source":"..."}`
- `context-mode/ctx_search`: `{"queries":["q1","q2"]}`
- `context-mode/ctx_index`: `{"path":"path/to/file-or-dir","source":"..."}`
or `{"content":"...","source":"..."}`
## Mandatory routing
- Think in code. For analyze/count/filter/compare/search/parse/transform tasks,
write code with `context-mode/ctx_execute` and print only the final answer.
Program the analysis; do not read raw data and compute mentally.
- File read for analysis: there is no separate `ctx_read` tool.
`context-mode/ctx_execute_file` is the context-mode file-read surface. It
loads the file into `FILE_CONTENT` inside the sandbox. Print only selected
lines, counts, matches, summaries, or structured results. Never print
`FILE_CONTENT` wholesale unless the user explicitly asks for a full file dump.
- Native `Read` / `view_file` is correct when editing requires exact bytes, or
when a small known range is needed. For analysis, exploration, summarization,
counting, filtering, or searching inside a file, use
`context-mode/ctx_execute_file`.
- Use one `context-mode/ctx_batch_execute` call for multi-command repository
reconnaissance. One batch should replace many shell/list/search calls.
- Use `context-mode/ctx_execute` for shell commands whose output may exceed a
short fixed answer. Native Bash is only for git, mkdir, rm, mv, navigation,
installs, or short observable output.
- Use `context-mode/ctx_fetch_and_index` for web content, then
`context-mode/ctx_search` to query it. Do not dump raw HTML into the
conversation.
- Use `context-mode/ctx_index` only when content should be stored and searched
later. For a one-off file question, prefer `context-mode/ctx_execute_file`;
for follow-up retrieval, index with a descriptive `source` and query with
`context-mode/ctx_search`.
- Return only derived answers, concise summaries, selected snippets, or file
paths to written artifacts. Do not paste raw command dumps, full files, large
search results, cached schemas, or raw HTML into the conversation.

30
.agents/rules/ponytail.md Normal file
View File

@ -0,0 +1,30 @@
# Ponytail, lazy senior dev mode
You are a lazy senior developer. Lazy means efficient, not careless. The best code is the code never written.
Before writing any code, stop at the first rung that holds:
1. Does this need to be built at all? (YAGNI)
2. Does it already exist in this codebase? Reuse the helper, util, or pattern that's already here, don't re-write it.
3. Does the standard library already do this? Use it.
4. Does a native platform feature cover it? Use it.
5. Does an already-installed dependency solve it? Use it.
6. Can this be one line? Make it one line.
7. Only then: write the minimum code that works.
The ladder runs after you understand the problem, not instead of it: read the task and the code it touches, trace the real flow end to end, then climb.
Bug fix = root cause, not symptom: a report names a symptom. Grep every caller of the function you touch and fix the shared function once — one guard there is a smaller diff than one per caller, and patching only the path the ticket names leaves a sibling caller still broken.
Rules:
- No abstractions that weren't explicitly requested.
- No new dependency if it can be avoided.
- No boilerplate nobody asked for.
- Deletion over addition. Boring over clever. Fewest files possible.
- Shortest working diff wins, but only once you understand the problem. The smallest change in the wrong place isn't lazy, it's a second bug.
- Question complex requests: "Do you actually need X, or does Y cover it?"
- Pick the edge-case-correct option when two stdlib approaches are the same size, lazy means less code, not the flimsier algorithm.
- Mark deliberate simplifications that cut a real corner with a known ceiling (global lock, O(n²) scan, naive heuristic) with a `ponytail:` comment naming the ceiling and upgrade path.
Not lazy about: understanding the problem (read it fully and trace the real flow before picking a rung, a small diff you don't understand is just laziness dressed up as efficiency), input validation at trust boundaries, error handling that prevents data loss, security, accessibility, the calibration real hardware needs (the platform is never the spec ideal, a clock drifts, a sensor reads off), anything explicitly requested. Lazy code without its check is unfinished: non-trivial logic leaves ONE runnable check behind, the smallest thing that fails if the logic breaks (an assert-based demo/self-check or one small test file; no frameworks, no fixtures). Trivial one-liners need no test.

15
.clinerules/caveman.md Normal file
View File

@ -0,0 +1,15 @@
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

20
.cursor/rules/caveman.mdc Normal file
View File

@ -0,0 +1,20 @@
---
description: "Caveman mode — terse communication, 65% fewer output tokens (measured), full technical accuracy"
alwaysApply: true
---
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

15
.github/copilot-instructions.md vendored Normal file
View File

@ -0,0 +1,15 @@
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

15
.opencode/AGENTS.md Normal file
View File

@ -0,0 +1,15 @@
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

View File

@ -0,0 +1,19 @@
---
trigger: always_on
---
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

52
AGENTS.md Normal file
View File

@ -0,0 +1,52 @@
# Project Rules & Guidelines
## RTK Command Guidelines
- **Git Operations**: Prefix `git` commands with `rtk` (e.g., `rtk git status`, `rtk git diff`, `rtk git log`, `rtk git commit`, `rtk git push`).
- **GitHub CLI**: Prefix `gh` commands with `rtk` (e.g., `rtk gh issue list | cat`, `rtk gh pr status | cat`). Always pipe `gh` commands to `cat` to bypass interactive pagers.
- **File & Directory Inspection**: Use `rtk ls`, `rtk tree`, `rtk find`, or `rtk read` when listing or reading files to get token-optimized output.
- **Searching**: Use `rtk grep` or `rtk rg` for line search pattern matching.
- **Build & Test Outputs**: Use `rtk err` or `rtk test` when running build/test commands to filter output to errors/failures only (e.g. `rtk test pio test -e native`).
## Context-Mode Routing Guidelines
- **Derive, Do Not Dump**: Do NOT use `context-mode/ctx_execute_file` or `ctx_execute` to print a whole file or a full method/config. Print only the specific value, matches, count, or known line-range needed.
- **Tool call surface**: If using generic MCP wrappers, call `call_mcp_tool` with `ServerName: "context-mode"` and `ToolName: "ctx_execute"`, `"ctx_execute_file"`, `"ctx_batch_execute"`, `"ctx_fetch_and_index"`, `"ctx_search"`, or `"ctx_index"`.
- **Mandatory Routing**:
- For analyze/count/filter/compare/search/parse/transform tasks, write code with `context-mode/ctx_execute` and print only the final answer.
- For analyzing/exploring/searching inside a file, use `context-mode/ctx_execute_file`. Use native `Read` / `view_file` only when editing requires exact bytes or a small known range.
- Use `context-mode/ctx_batch_execute` for multi-command repository reconnaissance.
- Use `context-mode/ctx_execute` for shell commands whose output may exceed a short fixed answer.
- Use `context-mode/ctx_fetch_and_index` for web content, then `context-mode/ctx_search` to query it.
- Return only derived answers, concise summaries, selected snippets, or file paths to written artifacts.
## Ponytail (Lazy Senior Dev Mode) Guidelines
- **Stop at the first rung that holds**:
1. Does this need to be built at all? (YAGNI)
2. Does it already exist in this codebase? Reuse existing helpers/utils/patterns.
3. Does the standard library already do this?
4. Does a native platform feature cover it?
5. Does an already-installed dependency solve it?
6. Can this be one line?
7. Only then: write the minimum code that works.
- **Bug fix = root cause, not symptom**: Fix the shared function/path rather than individual callers.
- **Rules**:
- No unrequested abstractions, boilerplate, or avoidable dependencies.
- Deletion over addition. Boring over clever. Fewest files possible.
- Shortest working diff wins, once the problem is understood.
- Mark deliberate simplifications cutting a real corner with a `ponytail:` comment naming the ceiling and upgrade path.
- Ensure logic leaves behind ONE runnable check (assert-based demo/self-check or small test file; no frameworks/fixtures). Trivial one-liners need no test.
Respond terse like smart caveman. All technical substance stay. Only fluff die.
Rules:
- Drop: articles (a/an/the), filler (just/really/basically), pleasantries, hedging
- Fragments OK. Short synonyms. Technical terms exact. Code unchanged.
- Pattern: [thing] [action] [reason]. [next step].
- Not: "Sure! I'd be happy to help you with that."
- Yes: "Bug in auth middleware. Fix:"
Switch level: /caveman lite|full|ultra|wenyan
Stop: "stop caveman" or "normal mode"
Auto-Clarity: drop caveman for security warnings, irreversible actions, user confused. Resume after.
Boundaries: code/commits/PRs written normal.

View File

@ -0,0 +1,19 @@
>> source: https://minimalistbaker.com/easy-tempeh-bacon/
>> serves: 6
>> prep time: 20 minutes
>> cook time: 20 minutes
>> total time: 40 minutes
Slice the @tempeh{8%ounces} (ensure gluten-free as needed) in half widthwise (so you have 2 even squares), then thinly slice each square in thirds so you have six very thin squares (its easiest to do this by placing the tempeh flat on your #cutting board{} and holding the #knife{} horizontally for an even cut). Then slice each square into three rectangular strips. You should have about 18 pieces of tempeh.
In a shallow #bowl{}, rimmed plate, or baking dish, #whisk{} together the @avocado oil{1%tbsp} (if oil-free, omit or add slightly more tamari and maple syrup), @tamari{3%tbsp} (or coconut aminos if soy-free, just use a bit more as its not as salty as tamari), @maple syrup{2.5%tbsp}, @sea salt{1%pinch}, @liquid smoke{1.5%tsp}, @smoked paprika{1.5%tsp}, @ground black pepper{0.5%tsp} (plus more for coating), and @cayenne pepper{1%dash} (optional // omit for less heat). Taste and adjust flavor as needed. It should be quite salty, smoky, a little spicy, and plenty sweet (even a little too sweet, as it needs to balance the bitterness of the tempeh).
Add the tempeh and toss to coat (using a pastry brush is helpful for fully coating). Marinate for 10 to ~{15%minutes}, flipping once for even flavor dispersion.
Preheat the #oven{} to 400°F (204°C) and line a #baking sheet{} with parchment paper.
Transfer tempeh (reserving excess marinade for brushing) to the parchment-lined baking sheet and arrange in a single layer.
Bake for 10 minutes, then remove from the oven, flip, and brush generously with reserved marinade. Bake for 8 to ~{10%minutes} more, or until browned and slightly crispy.
Enjoy immediately or store cooled leftovers in an airtight container in the refrigerator for 5 days, or in the freezer for up to 2 months. Reheat in a 350°F (176°C) oven or on the stovetop over medium heat until hot.

Binary file not shown.

After

Width:  |  Height:  |  Size: 874 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 640 KiB

View File

@ -0,0 +1,81 @@
---
comments: true
tags:
- breakfast
---
# Easy Tempeh Bacon
![Easy Tempeh Bacon][1]{ loading=lazy }
| :fork_and_knife_with_plate: Serves | :timer_clock: Total Time |
|:----------------------------------:|:-----------------------: |
| 6 | 25 minutes |
## :salt: Ingredients
- 8 ounces tempeh
- 1 tbsp avocado oil
- 3 tbsp tamari
- 2.5 tbsp maple syrup
- 1 pinch sea salt
- 1.5 tsp liquid smoke
- 1.5 tsp smoked paprika
- 0.5 tsp ground black pepper
- 1 dash cayenne pepper
## :cooking: Cookware
- 1 cutting board
- 1 knife
- 1 bowl
- 1 whisk
- 1 oven
- 1 baking sheet
## :pencil: Instructions
### Step 1
Slice the tempeh (ensure gluten-free as needed) in half widthwise (so you have 2 even squares), then thinly slice each
square in thirds so you have six very thin squares (its easiest to do this by placing the tempeh flat on your cutting
board and holding the knife horizontally for an even cut). Then slice each square into three rectangular strips. You
should have about 18 pieces of tempeh.
### Step 2
In a shallow bowl, rimmed plate, or baking dish, whisk together the avocado oil (if oil-free, omit or add slightly more
tamari and maple syrup), tamari (or coconut aminos if soy-free, just use a bit more as its not as salty as tamari),
maple syrup, sea salt, liquid smoke, smoked paprika, ground black pepper (plus more for coating), and cayenne pepper
(optional // omit for less heat). Taste and adjust flavor as needed. It should be quite salty, smoky, a little spicy,
and plenty sweet (even a little too sweet, as it needs to balance the bitterness of the tempeh).
### Step 3
Add the tempeh and toss to coat (using a pastry brush is helpful for fully coating). Marinate for 10 to 15 minutes,
flipping once for even flavor dispersion.
### Step 4
Preheat the oven to 400 °F (204°C) and line a baking sheet with parchment paper.
### Step 5
Transfer tempeh (reserving excess marinade for brushing) to the parchment-lined baking sheet and arrange in a single
layer.
### Step 6
Bake for 10 minutes, then remove from the oven, flip, and brush generously with reserved marinade. Bake for 8 to 10
minutes more, or until browned and slightly crispy.
### Step 7
Enjoy immediately or store cooled leftovers in an airtight container in the refrigerator for 5 days, or in the freezer
for up to 2 months. Reheat in a 350 °F (176°C) oven or on the stovetop over medium heat until hot.
## :link: Source
- <https://minimalistbaker.com/easy-tempeh-bacon/>
[1]: <../assets/images/easy-tempeh-bacon.webp>

View File

@ -1,94 +1,60 @@
---
comments: true
tags:
- side
- pickle
hero: assets/images/easy-refrigerator-dill-pickles.webp
---
# :cucumber: Easy Refrigerator Dill Pickles
![Easy Refrigerator Dill Pickles](../assets/images/easy-refrigerator-dill-pickles.webp){ loading=lazy }
| :fork_and_knife_with_plate: Serves | :timer_clock: Total Time |
|:----------------------------------:|:-----------------------: |
| 18 | 0 minutes |
| 18 | 15 minutes |
## :salt: Ingredients
- :cucumber: 12 pickling cucumbers
- :cucumber: 12 pickling cucumbers (quantity can vary depending on size)
- :droplet: 4 cups (908 g) water
- :takeout_box: 2 cups (212 g) white vinegar
- :salt: 2 tablespoons kosher salt
- :candy: 1 teaspoon (3 g) sugar
- :apple: 1 bunch fresh dill
- :garlic: 1 head garlic (skins removed, cloves smashed (use fewer cloves if its a strong garlic))
- :hot_pepper: 1 tablespoon peppercorn kernels
- :takeout_box: 1 pickling
- :droplet: 1 water,
- :beans: 1 white
- :baby_bottle: 1 kosher
- :candy: 1 sugar
- :candy: 1 sugar
- :apple: 1 fresh
- :hot_pepper: 1 peppercorn
- :apple: 1 bunch fresh dill (amount can vary depending on preference, thick stems removed)
- :garlic: 1 head garlic (skins removed, cloves smashed (use fewer cloves if it's a strong garlic))
- :hot_pepper: 1 tablespoon peppercorn kernels (usually about 10 peppercorns per jar)
## :cooking: Cookware
- 1 saucepan
- 1 pan
- 1 pan
- 1 39;ll
- 1 medium saucepan
- pint and quart mason jars (with airtight lids)
## :pencil: Instructions
### Step 1
pickling cucumbers (quantity can vary depending on size)
### Step 2
water
### Step 3
white vinegar
### Step 4
kosher salt
### Step 5
sugar
### Step 6
fresh dill (amount can vary depending on preference, thick stems removed)
### Step 7
garlic (skins removed, cloves smashed (use fewer cloves if its a strong garlic))
### Step 8
peppercorn kernels (I usually use about 10 peppercorns per jar, give or take)
### Step 9
Prepare ingredients: Thoroughly wash 12 pickling cucumbers. Slice cucumbers into 1/4-inch thick slices or spears. Set
aside. Smash garlic cloves and separate dill from thick stems. Also, sanitize mason jars by running them through the
dishwasher.
### Step 10
### Step 2
Prepare brine: To make the brine, combine 4 cups water, 2 cups white vinegar, 2 tablespoons kosher salt, and 1 teaspoon
sugar in a medium saucepan. Bring the mixture to a boil and swirl the pan to ensure the sugar and salt dissolve. Remove
the pan from heat and cool to room temperature.
### Step 11
### Step 3
Make the pickles: Layer the prepared cucumbers with 1 bunch fresh dill, smashed 1 head garlic, and 1 tablespoon
peppercorn kernels in the jars. Do not pack them super tight as you you&39;ll want room for the brine. Finish by adding
peppercorn kernels in the jars. Do not pack them super tight as you'll want room for the brine. Finish by adding
enough brine to cover the cucumbers. Seal with an airtight lid and store in the refrigerator. The flavor is best if
stored for at least one week, but they can be eaten at any time. Pickles should be good for at least 4-6 weeks after
that.
### Step 12
!!! note
This recipe made enough for me to fill one pint and fill two quart jars.
This recipe makes enough to fill one pint and two quart jars.
## :link: Source

View File

@ -705,6 +705,7 @@ emoji:
- honey
- maple syrup
- hot_pepper:
- ground black pepper
- jalapeño
- cracked black pepper
- chili powder or hot chili flakes

View File

@ -163,6 +163,7 @@ Breakfast = [
{ "Dreamy Cream Scones" = "breakfast/dreamy-cream-scones.md" },
{ "Dutch Baby" = "breakfast/dutch-baby.md" },
{ "Dutch Pancakes" = "breakfast/dutch-pancakes.md" },
{ "Easy Tempeh Bacon" = "breakfast/easy-tempeh-bacon.md" },
{ "French Omelet" = "breakfast/french-omelet.md" },
{ "French Toast" = "breakfast/french-toast.md" },
{ "Frittata" = "breakfast/frittata.md" },