From 3e3b17de3805c8756606a58d817babb65573fba7 Mon Sep 17 00:00:00 2001
From: m3tm3re
Date: Tue, 27 Jan 2026 20:09:05 +0100
Subject: [PATCH] Migrate from Anytype to Obsidian across all skills and
documentation
---
AGENTS.md | 227 ++++++------------
README.md | 14 +-
context/profile.md | 8 +-
prompts/chiron-forge.txt | 2 +-
prompts/chiron.txt | 4 +-
skills/basecamp/SKILL.md | 2 +-
skills/brainstorming/SKILL.md | 91 ++++---
.../references/anytype-workflow.md | 132 ----------
.../references/obsidian-workflow.md | 210 ++++++++++++++++
skills/knowledge-management/SKILL.md | 206 +++++++++++++---
skills/plan-writing/SKILL.md | 4 +-
skills/research/SKILL.md | 7 +-
12 files changed, 541 insertions(+), 366 deletions(-)
delete mode 100644 skills/brainstorming/references/anytype-workflow.md
create mode 100644 skills/brainstorming/references/obsidian-workflow.md
diff --git a/AGENTS.md b/AGENTS.md
index 7e141dd..2b29051 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -1,179 +1,108 @@
-# Agent Instructions - Opencode Skills Repository
+# Opencode Skills Repository
-Configuration repository for Opencode Agent Skills, context files, and agent configurations. Files deploy to `~/.config/opencode/` via Nix flake + home-manager.
+Configuration repository for Opencode Agent Skills, context files, and agent configurations. Deployed via Nix home-manager to `~/.config/opencode/`.
## Quick Commands
-### Testing Skills
```bash
-# List or validate all skills
-./scripts/test-skill.sh # List all development skills
+# Skill validation
./scripts/test-skill.sh --validate # Validate all skills
./scripts/test-skill.sh # Validate specific skill
+./scripts/test-skill.sh --run # Test interactively
-# Test in Opencode (interactive)
-./scripts/test-skill.sh --run # Launch session with dev skills
-```
+# Skill creation
+python3 skills/skill-creator/scripts/init_skill.py --path skills/
-### Creating Skills
-```bash
-python3 skills/skill-creator/scripts/init_skill.py --path skills/
-python3 skills/skill-creator/scripts/quick_validate.py skills/
-```
-
-### Running Tests
-```bash
-# Run single test file
-python3 -m unittest skills/pdf/scripts/check_bounding_boxes_test.py
-
-# Run all tests in a module
-python3 -m unittest discover -s skills/pdf/scripts -p "*_test.py"
-```
-
-### Issue Tracking
-```bash
-bd ready # Find available work
-bd create "title" # Create new issue
-bd update --status in_progress
-bd close # Complete work
-bd sync # Sync with git
-```
-
-## Code Style Guidelines
-
-### File Naming
-- Skills: hyphen-case (e.g., `task-management`, `skill-creator`)
-- Python: snake_case (e.g., `init_skill.py`, `quick_validate.py`)
-- Markdown: UPPERCASE or sentence-case (e.g., `SKILL.md`, `profile.md`)
-- Config: Standard conventions (e.g., `config.yaml`, `metadata.json`)
-
-### Python Style
-**Shebang**: Always `#!/usr/bin/env python3`
-
-**Docstrings**:
-```python
-"""
-Brief description
-
-Usage:
- script.py
-
-Examples:
- script.py my-skill --path ~/.config/opencode/skill
-"""
-```
-
-**Imports** (standard → third-party → local):
-```python
-import sys
-import os
-from pathlib import Path
-import yaml
-from . import utilities
-```
-
-**Naming**:
-- Functions: `snake_case`
-- Classes: `PascalCase`
-- Constants: `UPPER_SNAKE_CASE`
-- Private: `_leading_underscore`
-
-**Error handling**:
-```python
-try:
- # operation
-except SpecificException as e:
- print(f"❌ Error: {e}")
- return None
-```
-
-**User feedback**:
-```python
-print(f"✅ Success: {result}")
-print(f"❌ Error: {error}")
-```
-
-### Bash Style
-**Shebang**: Always `#!/usr/bin/env bash`
-**Strict mode**: `set -euo pipefail`
-**Functions**: `snake_case`, descriptive names
-
-### Markdown Style
-- YAML frontmatter between `---` delimiters
-- ATX headers (`#`, `##`, `###`)
-- Use `-` for unordered lists
-- Specify language in code blocks (```python, ```bash, etc.)
-
-### YAML Style
-```yaml
-name: skill-name
-description: "Text with special chars in quotes"
-compatibility: opencode
-items:
- - first
- - second
+# Issue tracking (beads)
+bd ready && bd create "title" && bd close && bd sync
```
## Directory Structure
```
.
+├── skills/ # Agent skills (25 modules)
+│ └── skill-name/
+│ ├── SKILL.md # Required: YAML frontmatter + workflows
+│ ├── scripts/ # Executable code (optional)
+│ ├── references/ # Domain docs (optional)
+│ └── assets/ # Templates/files (optional)
├── agents/ # Agent definitions (agents.json)
-├── prompts/ # Agent system prompts
-├── context/ # User profiles and preferences
-├── commands/ # Custom command definitions
-├── skills/ # Opencode Agent Skills
-│ ├── skill-name/
-│ │ ├── SKILL.md
-│ │ ├── scripts/ # Executable code (optional)
-│ │ ├── references/ # Documentation (optional)
-│ │ └── assets/ # Templates/files (optional)
-├── scripts/ # Repository utilities
-└── AGENTS.md # This file
+├── prompts/ # System prompts (chiron*.txt)
+├── context/ # User profiles
+├── commands/ # Custom commands
+└── scripts/ # Repo utilities (test-skill.sh)
```
-## Nix Deployment
+## Code Conventions
-**Flake input** (non-flake):
+**File naming**: hyphen-case (skills), snake_case (Python), UPPERCASE/sentence-case (MD)
+
+**SKILL.md structure**:
+```yaml
+---
+name: skill-name
+description: "Use when: (1) X, (2) Y. Triggers: a, b, c."
+compatibility: opencode
+---
+
+## Overview (1 line)
+## Core Workflows (step-by-step)
+## Integration with Other Skills
+```
+
+**Python**: `#!/usr/bin/env python3` + docstrings + emoji feedback (✅/❌)
+**Bash**: `#!/usr/bin/env bash` + `set -euo pipefail`
+**Markdown**: YAML frontmatter, ATX headers, `-` lists, language in code blocks
+
+## Anti-Patterns (CRITICAL)
+
+**Frontend Design**: NEVER use generic AI aesthetics, NEVER converge on common choices
+**Excalidraw**: NEVER use diamond shapes (broken arrows), NEVER use `label` property
+**Debugging**: NEVER fix just symptom, ALWAYS find root cause first
+**Excel**: ALWAYS respect existing template conventions over guidelines
+**Structure**: NEVER place scripts/docs outside scripts/references/ directories
+
+## Testing Patterns
+
+**Unique conventions** (skill-focused, not CI/CD):
+- Manual validation via `test-skill.sh`, no automated CI
+- Tests co-located with source (not separate test directories)
+- YAML frontmatter validation = primary quality gate
+- Mixed formats: Python unittest, markdown pressure tests, A/B prompt testing
+
+**Known deviations**:
+- `systematic-debugging/test-*.md` - Academic/pressure testing in wrong location
+- `pdf/forms.md`, `pdf/reference.md` - Docs outside references/
+
+## Deployment
+
+**Nix pattern** (non-flake input):
```nix
agents = {
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
- flake = false;
+ flake = false; # Files only, not a Nix flake
};
```
-**Deployment mapping**:
-- `skills/` → `~/.config/opencode/skill/` (symlink)
-- `context/` → `~/.config/opencode/context/` (symlink)
-- `commands/` → `~/.config/opencode/command/` (symlink)
-- `prompts/` → `~/.config/opencode/prompts/` (symlink)
-- `agents/agents.json` → Embedded into opencode config.json (not symlinked)
+**Mapping** (via home-manager):
+- `skills/`, `context/`, `commands/`, `prompts/` → symlinks
+- `agents/agents.json` → embedded into config.json
+- Agent changes: require `home-manager switch`
+- Other changes: visible immediately
-**Note**: Agent changes require `home-manager switch`; other changes visible after rebuild.
+## Notes for AI Agents
+
+1. **Config-only repo** - No compilation, no build, manual validation only
+2. **Skills are documentation** - Write for AI consumption, progressive disclosure
+3. **Consistent structure** - All skills follow 4-level deep pattern (skills/name/ + optional subdirs)
+4. **Cross-cutting concerns** - Standardized SKILL.md, workflow patterns, delegation rules
+5. **Always push** - Session completion workflow: commit + bd sync + git push
## Quality Gates
Before committing:
-1. Validate skills: `./scripts/test-skill.sh --validate`
-2. Validate YAML frontmatter: `python3 skills/skill-creator/scripts/quick_validate.py skills/`
-3. Check Python scripts have proper shebang and docstrings
-4. Ensure no extraneous files (README.md, CHANGELOG.md in skills)
-5. Git status clean
-
-## Notes for AI Agents
-
-1. **Config-only repo** - No compilation, no build, minimal test infrastructure
-2. **Validation is manual** - Run scripts explicitly before committing
-3. **Skills are documentation** - Write for AI consumption, not humans
-4. **Directory naming** - Use `skills/` (plural), not `skill/`; `agents/` (plural), not `agent/`
-5. **Commands naming** - Use `commands/` (plural), not `command/`
-6. **Nix deployment** - Maintain structure expected by home-manager
-7. **Always push** - Follow session completion workflow
-
-## Optimization Opportunities
-
-1. **Add Python linting** - Configure ruff or black for consistent formatting
-2. **Add pre-commit hooks** - Auto-validate skills and run linters before commit
-3. **Test coverage** - Add pytest for skill scripts beyond PDF skill
-4. **CI/CD** - Add GitHub Actions to validate skills on PR
-5. **Documentation** - Consolidate README.md and AGENTS.md to reduce duplication
+1. `./scripts/test-skill.sh --validate`
+2. Python shebang + docstrings check
+3. No extraneous files (README.md, CHANGELOG.md in skills/)
+4. Git status clean
diff --git a/README.md b/README.md
index fc5ae99..7a99378 100644
--- a/README.md
+++ b/README.md
@@ -162,7 +162,7 @@ The test script creates a temporary config directory with symlinks to this repo'
| Skill | Purpose | Status |
|-------|---------|--------|
-| **task-management** | PARA-based productivity with Anytype integration | ✅ Active |
+| **task-management** | PARA-based productivity with Obsidian Tasks integration | ✅ Active |
| **skill-creator** | Guide for creating new Opencode skills | ✅ Active |
| **reflection** | Conversation analysis and skill improvement | ✅ Active |
| **communications** | Email drafts, follow-ups, message management | ✅ Active |
@@ -171,7 +171,7 @@ The test script creates a temporary config directory with symlinks to this repo'
| **research** | Investigation workflows, source management | ✅ Active |
| **knowledge-management** | Note capture, knowledge organization | ✅ Active |
| **basecamp** | Basecamp project & todo management via MCP | ✅ Active |
-| **brainstorming** | General-purpose ideation with Anytype save | ✅ Active |
+| **brainstorming** | General-purpose ideation with Obsidian save | ✅ Active |
| **plan-writing** | Project plans with templates (kickoff, tasks, risks) | ✅ Active |
## 🤖 AI Agents
@@ -185,7 +185,7 @@ Chiron is a personal AI assistant focused on productivity and task management. N
- Task and project management guidance
- Daily and weekly review workflows
- Skill routing based on user intent
-- Integration with productivity tools (Anytype, ntfy, n8n)
+- Integration with productivity tools (Obsidian, ntfy, n8n)
**Modes**:
- **Chiron** (Plan Mode) - Read-only analysis and planning (`prompts/chiron.txt`)
@@ -251,11 +251,11 @@ See `AGENTS.md` for complete developer documentation.
### Example Skills to Study
-- **task-management/** - Full implementation with Anytype integration
+- **task-management/** - Full implementation with Obsidian Tasks integration
- **skill-creator/** - Meta-skill with bundled resources
- **reflection/** - Conversation analysis with rating system
- **basecamp/** - MCP server integration with multiple tool categories
-- **brainstorming/** - Framework-based ideation with Anytype object creation
+- **brainstorming/** - Framework-based ideation with Obsidian markdown save
- **plan-writing/** - Template-driven document generation
## 🔧 Customization
@@ -285,7 +285,7 @@ Create new command definitions in `command/` directory following the pattern in
### Personal Productivity
-Use the PARA methodology with Anytype integration:
+Use the PARA methodology with Obsidian Tasks integration:
- Capture tasks and notes quickly
- Run daily/weekly reviews
- Prioritize work based on impact
@@ -333,7 +333,7 @@ This repository contains personal configurations and skills. Feel free to use th
- [Opencode](https://opencode.dev) - AI coding assistant
- [Beads](https://github.com/steveyegge/beads) - AI-native issue tracking
- [PARA Method](https://fortelabs.com/blog/para/) - Productivity methodology
-- [Anytype](https://anytype.io) - Knowledge management platform
+- [Obsidian](https://obsidian.md) - Knowledge management platform
## 🙋 Questions?
diff --git a/context/profile.md b/context/profile.md
index f021a49..0e15e29 100644
--- a/context/profile.md
+++ b/context/profile.md
@@ -70,18 +70,18 @@
| System | Purpose | Status |
|--------|---------|--------|
-| Anytype | Knowledge management, PARA system | Setting up |
+| Obsidian | Knowledge management, PARA system | Active |
| ntfy | Push notifications | Active |
| n8n | Workflow automation | Active |
| Proton Mail | Email | Active |
| Proton Calendar | Scheduling | Active |
| Android | Mobile | Active |
-## Anytype Configuration
+## Obsidian Configuration
-- **Space**: Chiron (to be created)
+- **Vault**: ~/CODEX
- **Structure**: PARA methodology
-- **Types**: Project, Area, Resource, Archive, Task, Note
+- **Note Types**: Project, Area, Resource, Archive, Task, Note, Brainstorm
## Context for AI Interactions
diff --git a/prompts/chiron-forge.txt b/prompts/chiron-forge.txt
index 48f4469..acf73aa 100644
--- a/prompts/chiron-forge.txt
+++ b/prompts/chiron-forge.txt
@@ -61,7 +61,7 @@ Same as Chiron - load `context/profile.md` for Sascha's preferences.
Reference these skills for workflows (same as Chiron plan mode):
-- `task-management` - PARA methodology, Anytype integration
+- `task-management` - PARA methodology, Obsidian Tasks integration
- `research` - Investigation workflows
- `knowledge-management` - Note capture, knowledge base
- `calendar-scheduling` - Time blocking
diff --git a/prompts/chiron.txt b/prompts/chiron.txt
index 5ca2e34..b3777f9 100644
--- a/prompts/chiron.txt
+++ b/prompts/chiron.txt
@@ -92,9 +92,9 @@ Route requests to appropriate skills based on intent:
Reference these skills for detailed workflows:
-- `task-management` - PARA methodology, Anytype integration, reviews
+- `task-management` - PARA methodology, Obsidian Tasks integration, reviews
- `research` - Investigation workflows, source management
-- `knowledge-management` - Note capture, knowledge base organization
+- `knowledge-management` - Note capture, knowledge base organization
- `calendar-scheduling` - Time blocking, meeting management
- `communications` - Email drafts, follow-up tracking
diff --git a/skills/basecamp/SKILL.md b/skills/basecamp/SKILL.md
index 527a2c5..4c65bda 100644
--- a/skills/basecamp/SKILL.md
+++ b/skills/basecamp/SKILL.md
@@ -221,7 +221,7 @@ For complete tool reference with parameters, see [references/mcp-tools.md](refer
| --------------- | ------------------------------------------------- |
| brainstorming | Save decision → reference in project docs |
| plan-writing | todo-structure.md → Basecamp todos or cards |
-| task-management | Anytype tasks ↔ Basecamp todos (manual reference) |
+| task-management | Obsidian tasks ↔ Basecamp todos (manual reference) |
## Common Patterns
diff --git a/skills/brainstorming/SKILL.md b/skills/brainstorming/SKILL.md
index 4fc20ac..25574dc 100644
--- a/skills/brainstorming/SKILL.md
+++ b/skills/brainstorming/SKILL.md
@@ -65,56 +65,69 @@ Be ready to backtrack and clarify. Brainstorming is non-linear.
After reaching clarity, offer:
-> "Would you like me to save this as an Anytype Brainstorm object for reference?"
+> "Would you like me to save this brainstorm to Obsidian for reference?"
-If yes, use the Anytype MCP to create a Brainstorm object:
+If yes, create a brainstorm note in Obsidian:
```
-Anytype_API-create-object
- space_id: CHIRON_SPACE_ID
- type_key: "brainstorm_v_2"
- name: ""
- body: ""
- icon: { format: "emoji", emoji: "💭" }
- properties: [
- { key: "topic", text: "" },
- { key: "context", text: "" },
- { key: "outcome", text: "" },
- { key: "constraints", text: "