Skill: pauldub/codon (version 1.0.0)

--- name: codon description: Organize agent memory as a navigable filesystem. Every piece of information gets a numbered address (10.03-client-name.md) — no search required. Zero dependencies, human-readable. metadata: {"openclaw":{"emoji":"🧬","homepage":"https://github.com/pauldub/codon"}} --- # Codon Codon gives every memory an address. You navigate to it — you don't search for it. ## Setup If `MEMORY/` does not exist in this workspace, run it once: ``` bash {baseDir}/init.sh ``` ## How to store 1. Choose the right category from the taxonomy below 2. Assign the next available ID in that category (check `XX.00-index.md`) 3. Write to `MEMORY/<area>/<XX.YY-description>.md` 4. Add the ID to the category's index file **Example:** new client contact → `MEMORY/10-19-People/10.01-acme-jane-smith.md` ## How to recall Navigate by ID prefix — don't search, locate: - "Who are my contacts?" → read files in `MEMORY/10-19-People/` - "What projects are active?" → read files in `MEMORY/20-29-Projects/` - "Find the Acme notes" → look for `10-19-People/10.XX-acme-*` ## Default taxonomy | Area | Name | Examples | |------|------|---------| | 10-19 | People | Contacts, clients, team members | | 20-29 | Projects | Active and past work | | 30-39 | Resources | Tools, docs, links, references | | 40-49 | Work | Tasks, decisions, meeting notes | ## Rules - Existing `memory.md` is preserved. Use `MEMORY/` for all new entries. - If something fits two categories, prefer the more specific one. A person who is also a project contact goes in **10-19 People**, not 20-29. - Index files (`XX.00-index.md`) track which IDs are taken. Always update them. - IDs are never reused, even after deletion.

path: init.sh
content: #!/bin/bash
set -e

SKILL_DIR="$(cd "$(dirname "$0")" && pwd)"
# Walk up to workspace root: skills/codon/ -> skills/ -> workspace/
WORKSPACE_ROOT="$(cd "$SKILL_DIR/../.." && pwd)"
MEMORY_ROOT="$WORKSPACE_ROOT/MEMORY"

# Permission check
if [ ! -w "$WORKSPACE_ROOT" ]; then
  echo "ERROR: Cannot write to workspace at $WORKSPACE_ROOT" >&2
  exit 1
fi

# Category definitions: dirname -> ID prefix
declare -A PREFIXES=(
  ["10-19-People"]="10"
  ["20-29-Projects"]="20"
  ["30-39-Resources"]="30"
  ["40-49-Work"]="40"
)

declare -A DESCRIPTIONS=(
  ["10-19-People"]="Contacts, clients, team members"
  ["20-29-Projects"]="Active and past projects"
  ["30-39-Resources"]="Tools, docs, links, references"
  ["40-49-Work"]="Tasks, decisions, meeting notes"
)

mkdir -p "$MEMORY_ROOT"

# Process in order
for dir in "10-19-People" "20-29-Projects" "30-39-Resources" "40-49-Work"; do
  mkdir -p "$MEMORY_ROOT/$dir"

  PREFIX="${PREFIXES[$dir]}"
  INDEX_FILE="$MEMORY_ROOT/$dir/${PREFIX}.00-index.md"

  if [ ! -f "$INDEX_FILE" ]; then
    cat > "$INDEX_FILE" <<EOF
# ${dir} — Index
${DESCRIPTIONS[$dir]}

## IDs assigned

(none yet — entries appear here as XX.YY Description)

## How to add an entry

1. Pick the next available ID (e.g. ${PREFIX}.01, ${PREFIX}.02...)
2. Create \`MEMORY/${dir}/${PREFIX}.YY-short-description.md\`
3. Add the ID + one-line description to this index
EOF
    echo "  created  $dir/${PREFIX}.00-index.md"
  else
    echo "  exists   $dir/${PREFIX}.00-index.md (skipped)"
  fi
done

echo ""
echo "Codon initialized at $MEMORY_ROOT"
echo "Taxonomy: 10-19 People · 20-29 Projects · 30-39 Resources · 40-49 Work"


path: README.md
content: # codon

> Organize agent memory as a navigable filesystem. Every piece of information gets a numbered address — no search required.

Most memory skills answer: *how do I find it back?*
Codon answers: *where does this belong?*

## How it works

Codon creates a `MEMORY/` directory in your workspace with a numbered taxonomy:

```
MEMORY/
├── 10-19-People/
│   ├── 10.00-index.md
│   ├── 10.01-jane-smith-acme.md
│   └── 10.02-john-doe-partner.md
├── 20-29-Projects/
│   ├── 20.00-index.md
│   └── 20.01-website-redesign.md
├── 30-39-Resources/
│   └── 30.00-index.md
└── 40-49-Work/
    └── 40.00-index.md
```

Every memory has an address. Your agent navigates to it — no vector search, no query language, no API keys.

## Why not just use memory.md?

Flat files work until they don't. Once your agent has 50+ memories, a flat file becomes a wall of text it has to scan every time. Codon gives the agent a map: *"client contacts live in 10-19, always."*

## Why not ontology / vector search?

Those are databases. Codon is a filesystem. One requires Python and a query language. The other you can `ls`.

## Install

```bash
openclaw skills install codon
```

Then tell your agent: *"Initialize your memory system."*

## Zero dependencies

Pure bash + markdown. No Python, no database, no embeddings, no API keys.

## Extending with templates

The default taxonomy (People / Projects / Resources / Work) covers most use cases. Domain-specific templates are available separately for software engineering, market research, trading, and more.

## License

MIT


Security scan verdicts — ClawScan: clean | static analysis: clean | VirusTotal: clean | SkillSpector: clean (LOW)