Wiki logo

Wiki

Organization
skillberry-ai
wiki

Cross-iteration memory as a weakness graph (weakness nodes + solution cards), extracted from the deprecated `evograph` algorithm's run-dir format per its own maintainer note. Select via `memory_skill: wiki` in capevolve.yaml (default is `md-files`). Copied into every iteration's working dir as `./guidance/memory-wiki/` when selected; read this before writing anything under the run dir's `wiki/`.

Overview

Publisherskillberry-ai
Repositorycap-evolve
Skill namewiki
Stars
67
Forks
18
Bundled files
3
LicenseApache-2.0
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.

  • 3 bundled files

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

  • Open source

    Published by skillberry-ai on GitHub. Read the source before you install it.

Installation

Install the Wiki 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/skillberry-ai/cap-evolve/tree/main/skills/memory/wiki
  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/skillberry-ai/cap-evolve.git /tmp/cap-evolve
mkdir -p .claude/skills
cp -r /tmp/cap-evolve/skills/memory/wiki .claude/skills/wiki
Restart Claude Code after copying so it picks up the new skill.

Use it in TypingMind

Enable Wiki 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 Wiki 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 Wiki 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.

memory-wiki — the weakness graph memory format

This is a memory FORMAT, not a search strategy: any algorithm (hill-climb, gepa, skillopt, agent-optimize) can select memory_skill: wiki and get this instead of the default md-files (LEDGER/JOURNAL/PROCESS/INSIGHTS). It replaces per-iteration append-only prose with a persistent graph of known weaknesses, each carrying its own history of what was tried and what worked — read once, re-read every iteration, useful across the whole run instead of scrolling a growing journal.

Absolute path (most important rule)

Write to <run_dir>/wiki/ — the absolute path, never a relative copy inside your per-iteration working dir. Every iteration gets a fresh working copy; the wiki does not live inside it and is never copied in or folded back. Writing to the absolute path is what makes it visible to the next iteration (and to the dashboard's Weakness-graph tab, which reads wiki/ straight out of the run dir).

The two graphs

  • Weaknesses (wiki/weaknesses/<slug>.md) — what's broken. Persistent across iterations; a weakness's related neighbors are the graph's edges.
  • Solutions (wiki/solutions/<weakness-slug>/<sol-id>/) — a kept improvement for one weakness. Every solution [[wikilink]]s back to its weakness.

Weakness node — wiki/weaknesses/<slug>.md

markdown
---
slug: tool-call-arg-mismatch
status: in-progress            # open | in-progress | completed | solved | reverted
tags: [tool-calling, type-error]
discovered_in_iteration: cand_0003
attacked_in_iterations: [cand_0003, cand_0007]
solved_in_iteration: null
affected_tasks: [task_007, task_011, task_023]   # FROZEN after discovery — see below
related:
  - slug: schema-drift-after-retry
    why: both corrupt the tool-call payload; candidates to merge
solutions:
  - "[[tool-call-arg-mismatch-cand_0007]]"
---

# Tool call arg mismatch

## What fails
The agent's tool-call planner passes a dict where the tool expects a string.

## Tasks (found on)
- task_007 — search query sent as JSON object

## References
- `agent/planner.py:88` — builds the args dict; no type coercion before dispatch.

## Rejected Store Memory (RSM)
(Empty at discovery; append dead-end attempts here so a later iteration does not retry them.)

Freeze rule: affected_tasks may only grow in the weakness's discovery iteration — after that it is frozen, because solutions are scored against that exact task set and changing it invalidates the comparison. Only status may change afterward.

RSM entry (append-only, inside the weakness md, one per rejected attempt):

markdown
### <iteration id> · <rejected-direction-slug>
- **Thesis**: one line
- **Change**: files touched, summarized
- **Metrics (weakness tasks)**: <primary metric> <value>
- **Why rejected**: dead end (no gain) · or reverted (broke another task)

Solution card — wiki/solutions/<weakness-slug>/<sol-id>/{solution.md,changes.diff}

sol-id is the candidate id that produced it (e.g. cand_0007).

markdown
---
weakness: "[[tool-call-arg-mismatch]]"
iteration: cand_0007
outcome: kept               # pending -> kept once the gate confirms it improved
timestamp: 2026-06-28T14:03:00+03:00   # python scripts/now.py — never hand-written
primary_metric: { name: reward, value: 0.74 }
new_record: true            # true if this beat the weakness's previous best on its tasks
---

# Validate tool-call arg types in the planner

## Thesis
One line: the idea for resolving the weakness.

## Change list
- `agent/planner.py` — coerce arg types against the tool schema before dispatch.

## Per-task metric delta (weakness tasks)
| task    | before | after | Δ    |
|---------|--------|-------|------|
| task_007| 0.0    | 1.0   | +1.0 |

See also [[tool-call-arg-mismatch]].

changes.diff — the capability diff for this candidate vs its parent (the framework's own diff.patch/LEDGER already have this; keep changes.diff as a wiki-local copy so a reader of the weakness graph never has to leave it).

Acceptance is never self-reported here. outcome/new_record reflect the SAME honest val-significance gate every memory scheme reports through (LEDGER.md, framework-owned, also written under this scheme) — write the solution card once the candidate is actually accepted, not before.

Per-iteration metrics → wiki/results/round-<N>.json

json
{
  "round": 1,
  "split": "val",
  "started_at": "2026-06-28T14:00:00+03:00",
  "completed_at": "2026-06-28T14:04:12+03:00",
  "metrics": { "reward": { "value": 0.62, "primary": true, "direction": "higher" } },
  "per_task": [ { "task_id": "0", "reward": 1.0 } ]
}

Every metric is the wrapped object { value, primary, direction }, never a flat number — the dashboard's timeline reads .value. Stamp started_at/completed_at from python scripts/now.py so every file agrees on the clock.

What the dashboard renders

The dashboard's Weakness-graph tab reads wiki/ directly out of the run dir: one row per weakness (status, tags, related edges, solution count), the primary metric over wiki/results/round-<N>.json, and each solution's diff. No registration, no API — write the files in this format and the viewer reflects them within a couple of seconds. Everything in these files the dashboard doesn't recognize is preserved and ignored, so extra keys are always safe.

What this format does NOT give you

Whole-round revert, branches/worktrees-per-weakness, and multi-builder distribution were evograph's ALGORITHM (its search strategy, now deprecated — see skills/algorithms/evograph/SKILL.md), not this FORMAT. Selecting memory_skill: wiki with any algorithm gets you the graph and its file contract; the val-significance gate, git history and accept/reject mechanics stay whatever that algorithm already does.

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 Wiki AI skill do?

Cross-iteration memory as a weakness graph (weakness nodes + solution cards), extracted from the deprecated `evograph` algorithm's run-dir format per its own maintainer note. Select via `memory_skill: wiki` in capevolve.yaml (default is `md-files`). Copied into every iteration's working dir as `./guidance/memory-wiki/` when selected; read this before writing anything under the run dir's `wiki/`.

Why use Wiki on TypingMind?

Because you install it once and use it with any model. Wiki 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 Wiki in TypingMind?

Open Plugins → Skills → Install from GitHub in TypingMind and paste https://github.com/skillberry-ai/cap-evolve/tree/main/skills/memory/wiki. 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 Wiki?

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 Wiki?

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

Is the Wiki AI skill free?

Yes. It is published on GitHub by skillberry-ai under the Apache-2.0 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 👇