o9k-new-error
Create a new E-entry (bug/error) in hmem with the strict 5-level scaffold. Use when the user wants to log a bug, file a report, or document an error ('Bug loggen', 'log this error', 'Fehler eintragen'), or before any write_memory with prefix='E'.
Best use case
o9k-new-error is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Create a new E-entry (bug/error) in hmem with the strict 5-level scaffold. Use when the user wants to log a bug, file a report, or document an error ('Bug loggen', 'log this error', 'Fehler eintragen'), or before any write_memory with prefix='E'.
Teams using o9k-new-error should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/o9k-new-error/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How o9k-new-error Compares
| Feature / Agent | o9k-new-error | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Create a new E-entry (bug/error) in hmem with the strict 5-level scaffold. Use when the user wants to log a bug, file a report, or document an error ('Bug loggen', 'log this error', 'Fehler eintragen'), or before any write_memory with prefix='E'.
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# /o9k-new-error — New Error Entry E-entries use a fixed 6-section schema (Analysis → Possible fixes → Fixing attempts → Solution → Cause → Key Learnings). The server **auto-scaffolds** all sections — you only need to provide a title and a flat description. ## The one rule: NO TABS in the description The parser treats every tab-indented line as a structural node. Tabs in the description accidentally create invalid L2 nodes. Write the description as flat text after a blank line: ``` ✅ write_memory( prefix="E", content="Short bug title\n\nFlat description of what went wrong. No tabs here.", tags=["#project", "#area", "#open"], links=["P00XX"] ) ❌ write_memory( prefix="E", content="Short bug title\n\nDescription:\n\tStep 1 caused X\n\tStep 2 failed", ... ) ``` The ❌ example creates invalid L2 nodes (`Step 1 caused X`, `Step 2 failed`) that fail schema validation. --- ## Step 1: Collect the information Ask the user (or extract from context): | Field | Notes | |-------|-------| | **Title** | Short, descriptive. Max ~50 chars. Format: `What broke / where` | | **Description** | What happened, what was observed. Flat text, no tabs. | | **Tags** | At least `#open` + 2–3 topic tags. | | **Links** | Which P-entry does this belong to? (`P00XX`) | --- ## Step 2: Write the entry ``` write_memory( prefix="E", content="<title>\n\n<flat description>", tags=["#open", "#tag1", "#tag2"], links=["P00XX"] ) ``` The server auto-creates: - **.1 Analysis** (your description moves here automatically) - **.2 Possible fixes** - **.3 Fixing attempts** - **.4 Solution** - **.5 Cause** - **.6 Key Learnings** The write response shows the created ID (e.g. `E0149`) and a `#open` tag. --- ## Step 3: Fill in what you know Use `append_memory` to add detail to the sections you can already fill: ``` append_memory(id="E00XX.1", content="Root cause hypothesis: ...") # Analysis append_memory(id="E00XX.2", content="Try X first, then Y") # Possible fixes ``` Leave empty sections alone — Haiku fills them at the next checkpoint, or you fill them as debugging progresses. --- ## Step 4: When solved ``` update_memory(id="E00XX", content="<title> #solved", tags=["#solved", "#tag1", "#tag2"]) append_memory(id="E00XX.4", content="Final fix: ...") # Solution append_memory(id="E00XX.5", content="Root cause: ...") # Cause append_memory(id="E00XX.6", content="Key learning: ...") # Key Learnings ``` The Key Learnings section auto-creates an L-entry when updated (reaction rule in hmem.config.json). --- ## Common mistakes | Mistake | Fix | |---------|-----| | Tab-indented body text | Write flat text after the blank line — no tabs | | Section names as L2 nodes | Don't write `\tAnalysis\n\t\tdetail` — auto-scaffold does this | | Forgetting `#open` tag | Always include `#open` — it's how bugs are tracked | | Too long title | Keep title under 50 chars; detail goes in the body |