Zalohovani vsech podstatnych souboru

This commit is contained in:
lachtan
2026-06-10 06:39:52 +02:00
parent 1e10891945
commit 67e29c8b88
69 changed files with 9115 additions and 0 deletions

77
skills/keep/SKILL.md Normal file
View File

@@ -0,0 +1,77 @@
---
name: keep
description: >
Explicit immediate memory.
Use when user says "keep X", "zapamatuj si X", "ulož si X", "pamatuj si X", "/keep X".
Adds, deduplicates, and compacts entries in workspace/keep.md.
Separate from MEMORY.md / Dream pipeline.
---
# Keep
Explicit memory store. User says "keep X" → reformulate, write to
`/home/nanobot/.nanobot/workspace/keep.md`, dedup, compact when too long.
## File
`workspace/keep.md`. Flat bullet list. One entry = one line: `- <terse fact>`.
**No dates.** Date adds noise, has no value for keep/discard decisions.
## Write protocol
1. Extract the core fact. Drop filler ("you know", "important is that", "watch
out for", "remember please").
2. Rewrite as a 515 word terse fact. Telegraphic style. Dashes / parentheses
for context. **Preserve the language of the input — never translate.** Czech
input → Czech entry, English input → English entry.
- Input: "you know, Honza from marketing is allergic to peanuts"
- Entry: `Honza (marketing) — peanut allergy`
- If the entry is a decision, preference, or dead-end (not a plain fact),
append the reason inline on the same line: `<fact> — because <terse why>`.
Plain facts (allergy, deploy window, name) get no reason.
- If it is a decision/preference/dead-end but the input gives no reason, ask
the user once for the why before storing. If they supply it → append it. If
they decline or it is self-evident → store without it.
3. Read `workspace/keep.md` (create if missing).
4. Read `workspace/memory/MEMORY.md` and check if a semantically similar fact
already exists there (Dream may have already distilled it).
- If similar fact in MEMORY.md → tell the user (`"Already in MEMORY.md:
<existing fact>. Keep anyway?"`) and act on their answer. Default: skip.
5. Check duplicates: case-insensitive substring match against existing lines.
- If duplicate → ask user: replace, append as variant, or skip.
6. Append the new line.
7. If line count > 150 → run **compaction** (below) before responding.
8. Confirm: `Kept: <terse fact>`. Respond in the user's language (the model
localizes the confirmation itself).
## Compaction
Trigger: line count > 150, or user says "keep compact" / "udělej compaction".
1. Read full `keep.md`.
2. Rewrite under ~120 lines (headroom). Strategies:
- Merge duplicates and near-duplicates.
- Drop stale one-shot info (past meetings, transient states, expired notes).
- Shorten verbose entries.
3. Write the new file in one go.
4. Report: `Compaction: 151 → 117 lines`.
## Edge cases
- `/keep` with no content → ask "What should I remember?".
- Vague input ("remember this", "that thing") → ask for the concrete fact; do
not store a placeholder.
- File missing → create it on first write.
- Multi-line input → collapse newlines to spaces; one entry = one line.
## Rules
- Never store the verbatim input. Always reformulate.
- Reason (why) only for decisions / preferences / dead-ends — never for plain
facts. Always terse and inline on the same line; never a separate Why: block.
- Preserve input language; never translate.
- Do not store smalltalk or meta-commentary about memory itself.
- Keep is separate from MEMORY.md and Dream. Read MEMORY.md only for the dedup
check (step 4); never edit it or any Dream file from this skill.
- Touch `keep.md` only via this skill. Other agent paths should read it
(per USER.md reference) but not edit it.