Migrate from Anytype to Obsidian across all skills and documentation

This commit is contained in:
m3tm3re
2026-01-27 20:09:05 +01:00
parent 240fde83dd
commit 3e3b17de38
12 changed files with 541 additions and 366 deletions

227
AGENTS.md
View File

@@ -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 ## Quick Commands
### Testing Skills
```bash ```bash
# List or validate all skills # Skill validation
./scripts/test-skill.sh # List all development skills
./scripts/test-skill.sh --validate # Validate all skills ./scripts/test-skill.sh --validate # Validate all skills
./scripts/test-skill.sh <skill-name> # Validate specific skill ./scripts/test-skill.sh <skill-name> # Validate specific skill
./scripts/test-skill.sh --run # Test interactively
# Test in Opencode (interactive) # Skill creation
./scripts/test-skill.sh --run # Launch session with dev skills python3 skills/skill-creator/scripts/init_skill.py <name> --path skills/
```
### Creating Skills # Issue tracking (beads)
```bash bd ready && bd create "title" && bd close <id> && bd sync
python3 skills/skill-creator/scripts/init_skill.py <skill-name> --path skills/
python3 skills/skill-creator/scripts/quick_validate.py skills/<skill-name>
```
### 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 <id> --status in_progress
bd close <id> # 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 <args>
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
``` ```
## Directory Structure ## 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) ├── agents/ # Agent definitions (agents.json)
├── prompts/ # Agent system prompts ├── prompts/ # System prompts (chiron*.txt)
├── context/ # User profiles and preferences ├── context/ # User profiles
├── commands/ # Custom command definitions ├── commands/ # Custom commands
── skills/ # Opencode Agent Skills ── scripts/ # Repo utilities (test-skill.sh)
│ ├── skill-name/
│ │ ├── SKILL.md
│ │ ├── scripts/ # Executable code (optional)
│ │ ├── references/ # Documentation (optional)
│ │ └── assets/ # Templates/files (optional)
├── scripts/ # Repository utilities
└── AGENTS.md # This file
``` ```
## 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 ```nix
agents = { agents = {
url = "git+https://code.m3ta.dev/m3tam3re/AGENTS"; url = "git+https://code.m3ta.dev/m3tam3re/AGENTS";
flake = false; flake = false; # Files only, not a Nix flake
}; };
``` ```
**Deployment mapping**: **Mapping** (via home-manager):
- `skills/` `~/.config/opencode/skill/` (symlink) - `skills/`, `context/`, `commands/`, `prompts/` symlinks
- `context/``~/.config/opencode/context/` (symlink) - `agents/agents.json` → embedded into config.json
- `commands/``~/.config/opencode/command/` (symlink) - Agent changes: require `home-manager switch`
- `prompts/``~/.config/opencode/prompts/` (symlink) - Other changes: visible immediately
- `agents/agents.json` → Embedded into opencode config.json (not symlinked)
**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 ## Quality Gates
Before committing: Before committing:
1. Validate skills: `./scripts/test-skill.sh --validate` 1. `./scripts/test-skill.sh --validate`
2. Validate YAML frontmatter: `python3 skills/skill-creator/scripts/quick_validate.py skills/<name>` 2. Python shebang + docstrings check
3. Check Python scripts have proper shebang and docstrings 3. No extraneous files (README.md, CHANGELOG.md in skills/)
4. Ensure no extraneous files (README.md, CHANGELOG.md in skills) 4. Git status clean
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

View File

@@ -162,7 +162,7 @@ The test script creates a temporary config directory with symlinks to this repo'
| Skill | Purpose | Status | | 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 | | **skill-creator** | Guide for creating new Opencode skills | ✅ Active |
| **reflection** | Conversation analysis and skill improvement | ✅ Active | | **reflection** | Conversation analysis and skill improvement | ✅ Active |
| **communications** | Email drafts, follow-ups, message management | ✅ 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 | | **research** | Investigation workflows, source management | ✅ Active |
| **knowledge-management** | Note capture, knowledge organization | ✅ Active | | **knowledge-management** | Note capture, knowledge organization | ✅ Active |
| **basecamp** | Basecamp project & todo management via MCP | ✅ 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 | | **plan-writing** | Project plans with templates (kickoff, tasks, risks) | ✅ Active |
## 🤖 AI Agents ## 🤖 AI Agents
@@ -185,7 +185,7 @@ Chiron is a personal AI assistant focused on productivity and task management. N
- Task and project management guidance - Task and project management guidance
- Daily and weekly review workflows - Daily and weekly review workflows
- Skill routing based on user intent - Skill routing based on user intent
- Integration with productivity tools (Anytype, ntfy, n8n) - Integration with productivity tools (Obsidian, ntfy, n8n)
**Modes**: **Modes**:
- **Chiron** (Plan Mode) - Read-only analysis and planning (`prompts/chiron.txt`) - **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 ### 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 - **skill-creator/** - Meta-skill with bundled resources
- **reflection/** - Conversation analysis with rating system - **reflection/** - Conversation analysis with rating system
- **basecamp/** - MCP server integration with multiple tool categories - **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 - **plan-writing/** - Template-driven document generation
## 🔧 Customization ## 🔧 Customization
@@ -285,7 +285,7 @@ Create new command definitions in `command/` directory following the pattern in
### Personal Productivity ### Personal Productivity
Use the PARA methodology with Anytype integration: Use the PARA methodology with Obsidian Tasks integration:
- Capture tasks and notes quickly - Capture tasks and notes quickly
- Run daily/weekly reviews - Run daily/weekly reviews
- Prioritize work based on impact - 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 - [Opencode](https://opencode.dev) - AI coding assistant
- [Beads](https://github.com/steveyegge/beads) - AI-native issue tracking - [Beads](https://github.com/steveyegge/beads) - AI-native issue tracking
- [PARA Method](https://fortelabs.com/blog/para/) - Productivity methodology - [PARA Method](https://fortelabs.com/blog/para/) - Productivity methodology
- [Anytype](https://anytype.io) - Knowledge management platform - [Obsidian](https://obsidian.md) - Knowledge management platform
## 🙋 Questions? ## 🙋 Questions?

View File

@@ -70,18 +70,18 @@
| System | Purpose | Status | | System | Purpose | Status |
|--------|---------|--------| |--------|---------|--------|
| Anytype | Knowledge management, PARA system | Setting up | | Obsidian | Knowledge management, PARA system | Active |
| ntfy | Push notifications | Active | | ntfy | Push notifications | Active |
| n8n | Workflow automation | Active | | n8n | Workflow automation | Active |
| Proton Mail | Email | Active | | Proton Mail | Email | Active |
| Proton Calendar | Scheduling | Active | | Proton Calendar | Scheduling | Active |
| Android | Mobile | Active | | Android | Mobile | Active |
## Anytype Configuration ## Obsidian Configuration
- **Space**: Chiron (to be created) - **Vault**: ~/CODEX
- **Structure**: PARA methodology - **Structure**: PARA methodology
- **Types**: Project, Area, Resource, Archive, Task, Note - **Note Types**: Project, Area, Resource, Archive, Task, Note, Brainstorm
## Context for AI Interactions ## Context for AI Interactions

View File

@@ -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): 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 - `research` - Investigation workflows
- `knowledge-management` - Note capture, knowledge base - `knowledge-management` - Note capture, knowledge base
- `calendar-scheduling` - Time blocking - `calendar-scheduling` - Time blocking

View File

@@ -92,7 +92,7 @@ Route requests to appropriate skills based on intent:
Reference these skills for detailed workflows: 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 - `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 - `calendar-scheduling` - Time blocking, meeting management

View File

@@ -221,7 +221,7 @@ For complete tool reference with parameters, see [references/mcp-tools.md](refer
| --------------- | ------------------------------------------------- | | --------------- | ------------------------------------------------- |
| brainstorming | Save decision → reference in project docs | | brainstorming | Save decision → reference in project docs |
| plan-writing | todo-structure.md → Basecamp todos or cards | | 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 ## Common Patterns

View File

@@ -65,56 +65,69 @@ Be ready to backtrack and clarify. Brainstorming is non-linear.
After reaching clarity, offer: 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 File: ~/CODEX/03-resources/brainstorms/YYYY-MM-DD-[topic].md
space_id: CHIRON_SPACE_ID
type_key: "brainstorm_v_2" ---
name: "<topic>" date: {{date}}
body: "<full brainstorm content in markdown>" created: {{timestamp}}
icon: { format: "emoji", emoji: "💭" } type: brainstorm
properties: [ framework: {{framework_used}}
{ key: "topic", text: "<short title>" }, status: {{draft|final|archived}}
{ key: "context", text: "<situation and trigger>" }, tags: #brainstorm #{{framework_tag}}
{ key: "outcome", text: "<what success looks like>" }, ---
{ key: "constraints", text: "<time, resources, boundaries>" },
{ key: "options", text: "<options considered>" }, # {{topic}}
{ key: "decision", text: "<final choice>" },
{ key: "rationale", text: "<reasoning behind decision>" }, ## Context
{ key: "next_steps", text: "<action items>" }, {{situation and trigger}}
{ key: "framework", select: "<framework_tag_id>" },
{ key: "status", select: "draft" } ## Outcome
] {{what success looks like}}
## Constraints
{{time, resources, boundaries}}
## Options Explored
{{options considered}}
## Decision
{{final choice}}
## Rationale
{{reasoning behind decision}}
## Next Steps
{{action items}}
---
*Created: {{timestamp}}*
``` ```
**Chiron Space ID**: `bafyreie5sfq7pjfuq56hxsybos545bi4tok3kx7nab3vnb4tnt4i3575p4.yu20gbnjlbxv` **Framework tags** (use in `tags:` frontmatter):
- `#pros-cons` - Pros/Cons analysis
- `#swot` - Strategic SWOT assessment
- `#5-whys` - Root cause analysis
- `#how-now-wow` - Prioritization matrix
- `#starbursting` - Comprehensive exploration (6 questions)
- `#constraint-mapping` - Boundary analysis
**Framework Tag IDs**: **Status tags** (use in `status:` frontmatter):
- `bafyreiatkdbwq53shngaje6wuw752wxnwqlk3uhy6nicamdr56jpvji34i` - None - `draft` - Initial capture
- `bafyreiaizrndgxmzbbzo6lurkgi7fc6evemoc5tivswrdu57ngkizy4b3u` - Pros/Cons - `final` - Decision made
- `bafyreiaym5zkajnsrklivpjkizkuyhy3v5fzo62aaeobdlqzhq47clv6lm` - SWOT - `archived` - No longer active
- `bafyreihgfpsjeyuu7p46ejzd5jce5kmgfsuxy7r5kl4fqdhuq7jqoggtgq` - 5 Whys
- `bafyreieublfraypplrr5mmnksnytksv4iyh7frspyn64gixaodwmnhmosu` - How-Now-Wow
- `bafyreieyz6xjpt3zxad7h643m24oloajcae3ocnma3ttqfqykmggrsksk4` - Starbursting
- `bafyreigokn5xgdosd4cihehl3tqfsd25mwdaapuhopjgn62tkpvpwn4tmy` - Constraint Mapping
**Status Tag IDs**:
- `bafyreig5um57baws2dnntaxsi4smxtrzftpe57a7wyhfextvcq56kdkllq` - Draft
- `bafyreiffiinadpa2fwxw3iylj7pph3yzbnhe63dcyiwr4x24ne4jsgi24` - Final
- `bafyreihk6dlpwh3nljrxcqqe3v6tl52bxuvmx3rcgyzyom6yjmtdegu4ja` - Archived
**Optional**: Link to related objects using `linked_projects` or `linked_tasks` properties with object IDs.
--- ---
## Template Setup ## Template Setup
For a better editing experience, create a template in Anytype: For a better editing experience, create a template in Obsidian:
1. Open Anytype desktop app → Chiron space 1. Open Obsidian → ~/CODEX vault
2. Go to Content Model → Object Types → Brainstorm v2 2. Go to Content Model → Object Types → Brainstorm v2
3. Click Templates (top right) → Click + to create template 3. Click Templates (top right) → Click + to create template
4. Name it "Brainstorm Session" and configure default fields: 4. Name it "Brainstorm Session" and configure default fields:
@@ -185,4 +198,4 @@ After brainstorming, common next steps:
| Task identified | task-management | "Add this to my tasks" | | Task identified | task-management | "Add this to my tasks" |
| Work project | basecamp | "Set this up in Basecamp" | | Work project | basecamp | "Set this up in Basecamp" |
All handoffs can reference the Anytype Brainstorm object via its ID or linked objects. All handoffs can reference the Obsidian brainstorm note via WikiLinks or file paths.

View File

@@ -1,132 +0,0 @@
# Brainstorm Anytype Workflow
This document describes how to create and use Brainstorm objects in Anytype.
## Quick Create (API)
```bash
# Create a brainstorm object using Anytype MCP
Anytype_API-create-object
space_id: bafyreie5sfq7pjfuq56hxsybos545bi4tok3kx7nab3vnb4tnt4i3575p4.yu20gbnjlbxv
type_key: "brainstorm_v_2"
name: "NixOS Course Launch Strategy"
body: "Full brainstorm content here..."
icon: { format: "emoji", emoji: "💭" }
properties: [
{ key: "topic", text: "NixOS Course Launch Strategy" },
{ key: "context", text: "Want to launch NixOS course for developers" },
{ key: "outcome", text: "Build long-term audience/community" },
{ key: "constraints", text: "2-4 weeks prep time, solo creator" },
{ key: "options", text: "Option A: Early access... Option B: Free preview..." },
{ key: "decision", text: "Early access with community" },
{ key: "rationale", text: "Builds anticipation while validating content" },
{ key: "next_steps", text: "1. Create landing page, 2. Build email list..." },
{ key: "framework", select: "bafyreigokn5xgdosd4cihehl3tqfsd25mwdaapuhopjgn62tkpvpwn4tmy" },
{ key: "status", select: "bafyreiffiinadpa2fwxw3iylj7pph3yzbnhe63dcyiwr4x24ne4jsgi24" }
]
```
## Type Properties
| Property | Type | Purpose |
|----------|------|---------|
| `topic` | text | Short title/summary |
| `context` | text | Situation and trigger |
| `outcome` | text | What success looks like |
| `constraints` | text | Time, resources, boundaries |
| `options` | text | Options explored |
| `decision` | text | Final choice made |
| `rationale` | text | Reasoning behind decision |
| `next_steps` | text/objects | Action items or linked tasks |
| `framework` | select | Thinking framework used |
| `status` | select | Draft → Final → Archived |
| `tags` | multi_select | Categorization |
| `linked_projects` | objects | Related projects |
| `linked_tasks` | objects | Related tasks |
## Framework Tag IDs
| Framework | Tag ID |
|-----------|--------|
| None | `bafyreiatkdbwq53shngaje6wuw752wxnwqlk3uhy6nicamdr56jpvji34i` |
| Pros/Cons | `bafyreiaizrndgxmzbbzo6lurkgi7fc6evemoc5tivswrdu57ngkizy4b3u` |
| SWOT | `bafyreiaym5zkajnsrklivpjkizkuyhy3v5fzo62aaeobdlqzhq47clv6lm` |
| 5 Whys | `bafyreihgfpsjeyuu7p46ejzd5jce5kmgfsuxy7r5kl4fqdhuq7jqoggtgq` |
| How-Now-Wow | `bafyreieublfraypplrr5mmnksnytksv4iyh7frspyn64gixaodwmnhmosu` |
| Starbursting | `bafyreieyz6xjpt3zxad7h643m24oloajcae3ocnma3ttqfqykmggrsksk4` |
| Constraint Mapping | `bafyreigokn5xgdosd4cihehl3tqfsd25mwdaapuhopjgn62tkpvpwn4tmy` |
## Status Tag IDs
| Status | Tag ID |
|--------|--------|
| Draft | `bafyreig5um57baws2dnntaxsi4smxtrzftpe57a7wyhfextvcq56kdkllq` |
| Final | `bafyreiffiinadpa2fwxw3iylj7pph3yzbnhe63dcyiwr4x24ne4jsgi24` |
| Archived | `bafyreihk6dlpwh3nljrxcqqe3v6tl52bxuvmx3rcgyzyom6yjmtdegu4ja` |
## Template Setup (Recommended)
For a better editing experience, create a template in Anytype:
1. Open Anytype desktop app → Chiron space
2. Go to Content Model → Object Types → Brainstorm v2
3. Click Templates (top right) → Click + to create template
4. Configure with:
- **Name**: "Brainstorm Session"
- **Icon**: 💭
- **Default Status**: Draft
- **Pre-filled structure**: Leave body empty for dynamic content
- **Property defaults**: Set framework to "None" as default
5. Save the template
Now when creating brainstorms, select this template for a guided experience.
## Linking to Other Objects
After creating a brainstorm, link it to related objects:
```bash
# Link to a project
Anytype_API-update-object
object_id: <brainstorm_id>
space_id: <chiron_space_id>
properties: [
{ key: "linked_projects", objects: ["<project_id>"] }
]
# Link to tasks
Anytype_API-update-object
object_id: <brainstorm_id>
space_id: <chiron_space_id>
properties: [
{ key: "linked_tasks", objects: ["<task_id_1>", "<task_id_2>"] }
]
```
## Searching Brainstorms
Find brainstorms by topic, status, or tags:
```bash
Anytype_API-search-space
space_id: bafyreie5sfq7pjfuq56hxsybos545bi4tok3kx7nab3vnb4tnt4i3575p4.yu20gbnjlbxv
query: "NixOS"
types: ["brainstorm_v_2"]
```
Or list all brainstorms:
```bash
Anytype_API-list-objects
space_id: bafyreie5sfq7pjfuq56hxsybos545bi4tok3kx7nab3vnb4tnt4i3575p4.yu20gbnjlbxv
type_id: bafyreifjneoy2bdxuwwai2e3mdn7zovudpzbjyflth7k3dj3o7tmhqdlw4
```
## Best Practices
1. **Create brainstorms for any significant decision** - Capture reasoning while fresh
2. **Mark as Final when complete** - Helps with search and review
3. **Link to related objects** - Creates context web
4. **Use frameworks selectively** - Not every brainstorm needs structure
5. **Review periodically** - Brainstorms can inform future decisions

View File

@@ -0,0 +1,210 @@
# Brainstorm Obsidian Workflow
This document describes how to create and use brainstorm notes in Obsidian.
## Quick Create
Create a brainstorm note in Obsidian markdown format:
```markdown
File: ~/CODEX/03-resources/brainstorms/YYYY-MM-DD-[topic].md
---
date: 2026-01-27
created: 2026-01-27T18:30:00Z
type: brainstorm
framework: pros-cons
status: draft
tags: #brainstorm #pros-cons
---
# NixOS Course Launch Strategy
## Context
Want to launch NixOS course for developers who want to learn Nix
## Outcome
Build long-term audience/community around NixOS expertise
## Constraints
- 2-4 weeks preparation time
- Solo creator (no team yet)
- Limited budget for marketing
## Options Explored
### Option A: Early Access Beta
- **Approach**: Release course to 10-20 people first, gather feedback, then full launch
- **Pros**: Validates content, builds testimonials, catches bugs early
- **Cons**: Slower to revenue, requires managing beta users
- **Best if**: Quality is critical and you have patient audience
### Option B: Free Preview + Upsell
- **Approach**: Release first module free, full course for paid
- **Pros**: Low barrier to entry, demonstrates value, builds email list
- **Cons**: Lower conversion rate, can feel "bait-and-switchy"
- **Best if**: Content quality is obvious from preview
### Option C: Full Launch with Community
- **Approach**: Launch full course immediately with Discord/Community for support
- **Pros**: Immediate revenue, maximum reach, community built-in
- **Cons**: No validation, bugs in production, overwhelmed support
- **Best if**: Content is well-tested and you have support capacity
## Decision
**Early Access Beta** - Build anticipation while validating content
## Rationale
Quality and community trust matter more than speed. A beta launch lets me:
1. Catch errors before they damage reputation
2. Build testimonials that drive full launch
3. Gather feedback to improve the product
4. Create a community of early adopters who become evangelists
## Next Steps
1. Create landing page with beta signup
2. Build email list from signups
3. Create course outline and first modules
4. Select 10-20 beta users from community
5. Set up feedback collection system (notion/obsidian)
6. Launch beta (target: Feb 15)
7. Collect feedback for 2 weeks
8. Finalize content based on feedback
9. Full launch (target: March 1)
```
## Note Structure
| Frontmatter Field | Purpose | Values |
|-----------------|---------|---------|
| `date` | Date created | YYYY-MM-DD |
| `created` | Timestamp | ISO 8601 |
| `type` | Note type | `brainstorm` |
| `framework` | Framework used | `none`, `pros-cons`, `swot`, `5-whys`, `how-now-wow`, `starbursting`, `constraint-mapping` |
| `status` | Progress status | `draft`, `final`, `archived` |
| `tags` | Categorization | Always include `#brainstorm`, add framework tag |
## Framework Tags
| Framework | Tag | When to Use |
|-----------|------|-------------|
| None | `#none` | Conversational exploration without structure |
| Pros/Cons | `#pros-cons` | Binary decision (A or B, yes or no) |
| SWOT | `#swot` | Strategic assessment of situation |
| 5 Whys | `#5-whys` | Finding root cause of problem |
| How-Now-Wow | `#how-now-wow` | Prioritizing many ideas by impact/effort |
| Starbursting | `#starbursting` | Comprehensive exploration (6 questions) |
| Constraint Mapping | `#constraint-mapping` | Understanding boundaries and constraints |
## Status Values
| Status | Description | When to Use |
|--------|-------------|-------------|
| `draft` | Initial capture, work in progress | Start with this, update as you work |
| `final` | Decision made, brainstorm complete | When you've reached clarity |
| `archived` | No longer relevant or superseded | Historical reference only |
## Template Setup
For a better editing experience, create a template in Obsidian:
1. Open Obsidian → ~/CODEX vault
2. Create folder: `_chiron/templates/` if not exists
3. Create template file: `brainstorm-note.md` with:
- Frontmatter with placeholder values
- Markdown structure matching the sections above
- Empty sections ready to fill in
4. Set up Obsidian Templates plugin (optional) to use this template
**Obsidian Template:**
```markdown
---
date: {{date}}
created: {{timestamp}}
type: brainstorm
framework: {{framework}}
status: draft
tags: #brainstorm #{{framework}}
---
# {{topic}}
## Context
## Outcome
## Constraints
## Options Explored
### Option A: {{option_a_name}}
- **Approach**:
- **Pros**:
- **Cons**:
- **Best if**:
### Option B: {{option_b_name}}
- **Approach**:
- **Pros**:
- **Cons**:
- **Best if**:
## Decision
## Rationale
## Next Steps
1.
2.
3.
```
## Linking to Other Notes
After creating a brainstorm, link it to related notes using WikiLinks:
```markdown
## Related Projects
- [[Launch NixOS Flakes Course]]
- [[Q2 Training Program]]
## Related Tasks
- [[Tasks]]
```
## Searching Brainstorms
Find brainstorms by topic, framework, or status using Obsidian search:
**Obsidian search:**
- Topic: `path:03-resources/brainstorms "NixOS"`
- Framework: `#pros-cons path:03-resources/brainstorms`
- Status: `#draft path:03-resources/brainstorms`
**Dataview query (if using plugin):**
```dataview
TABLE date, topic, framework, status
FROM "03-resources/brainstorms"
WHERE type = "brainstorm"
SORT date DESC
```
## Best Practices
1. **Create brainstorms for any significant decision** - Capture reasoning while fresh
2. **Mark as Final when complete** - Helps with search and review
3. **Link to related notes** - Creates context web via WikiLinks
4. **Use frameworks selectively** - Not every brainstorm needs structure
5. **Review periodically** - Brainstorms can inform future decisions
6. **Keep structure consistent** - Same sections make reviews easier
7. **Use tags for filtering** - Framework and status tags are essential
## Integration with Other Skills
| From brainstorming | To skill | Handoff trigger |
|------------------|------------|-----------------|
| Project decision | plan-writing | "Create a project plan for this" |
| Task identified | task-management | "Add this to my tasks" |
| Work project | basecamp | "Set this up in Basecamp" |
All handoffs can reference the Obsidian brainstorm note via WikiLinks or file paths.

View File

@@ -1,59 +1,209 @@
--- ---
name: knowledge-management name: knowledge-management
description: "Knowledge base and note management with Anytype. Use when: (1) saving information for later, (2) organizing notes and references, (3) finding past notes, (4) building knowledge connections, (5) managing documentation. Triggers: save this, note, remember, knowledge base, where did I put, find my notes on, documentation." description: "Knowledge base and note management with Obsidian. Use when: (1) saving information for later, (2) organizing notes and references, (3) finding past notes, (4) building knowledge connections, (5) managing documentation. Triggers: save this, note, remember, knowledge base, where did I put, find my notes on, documentation."
compatibility: opencode compatibility: opencode
--- ---
# Knowledge Management # Knowledge Management
Note capture and knowledge organization using Anytype as the backend. Note capture and knowledge organization using Obsidian as the backend.
## Status: Stub ## Status: Active
This skill is a placeholder for future development. Core functionality to be added: Quick note capture and knowledge organization using Obsidian markdown vault.
## Planned Features ## Quick Note Capture
### Quick Note Capture - Minimal friction capture to Obsidian vault (~/CODEX/)
- Minimal friction capture to Anytype
- Auto-tagging based on content - Auto-tagging based on content
- Link to related notes - Link to related notes using WikiLinks
- Use frontmatter for metadata
### Knowledge Retrieval ## Knowledge Retrieval
- Semantic search across notes
- Tag-based filtering
- Connection discovery
### Resource Organization - Fast search using ripgrep across vault
- PARA Resources category management - Tag-based filtering (#tag syntax)
- Topic clustering - WikiLink connections for related notes
- Archive maintenance - Use Obsidian graph view for visual connections
## Resource Organization
- PARA Resources category management (03-resources/)
- Topic clustering with folders
- Archive maintenance (04-archive/)
- Frontmatter for structured metadata
## Documentation Management
### Documentation Management
- Technical docs organization - Technical docs organization
- Version tracking - Version tracking via Git
- Cross-reference linking - Cross-reference linking
- Template-driven structure
## Integration Points ## Integration Points
- **Anytype**: Primary storage (Resources type) - **Obsidian**: Primary storage (Markdown vault at ~/CODEX/)
- **task-management**: Link notes to projects/areas - **task-management**: Link notes to projects/areas
- **research**: Save research findings - **research**: Save research findings to Resources
## Quick Commands (Future) ## Quick Commands
| Command | Description | | Command | Description |
|---------|-------------| |---------|-------------|
| `note: [content]` | Quick capture | | `note: [content]` | Quick capture to inbox |
| `find notes on [topic]` | Search knowledge base | | `find notes on [topic]` | Search vault with ripgrep |
| `link [note] to [note]` | Create connection | | `link [note] to [note]` | Create WikiLink connection |
| `organize [tag/topic]` | Cluster related notes | | `organize [tag/topic]` | Cluster related notes |
## Anytype Types ## Note Structure
- `note` - Quick captures ### Quick Note Format
- `resource` - Organized reference material ```markdown
- `document` - Formal documentation ---
date: 2026-01-27
created: 2026-01-27T18:30:00Z
type: note
tags: #quick-capture #{{topic_tag}}
---
# {{topic}}
## Content
{{note content}}
## Related
- [[Related Note 1]]
- [[Related Note 2]]
```
### Resource Format
```markdown
---
date: 2026-01-27
created: 2026-01-27T18:30:00Z
type: resource
tags: #{{topic}} #{{category}}
status: active
---
# {{topic}}
## Overview
{{brief description}}
## Key Information
- Point 1
- Point 2
- Point 3
## Resources
- [Link 1](https://...)
- [Link 2](https://...)
## Related Notes
- [[Note 1]]
- [[Note 2]]
```
## Storage Locations
```
~/CODEX/
├── 00-inbox/ # Quick captures
│ ├── quick-capture.md # Unprocessed notes
│ ├── web-clips.md # Saved web content
│ └── learnings.md # New learnings
├── 01-projects/ # Project-specific knowledge
├── 02-areas/ # Ongoing responsibilities
├── 03-resources/ # Reference material
│ ├── programming/
│ ├── tools/
│ ├── documentation/
│ └── brainstorms/
└── 04-archive/ # Stale content
├── projects/
├── areas/
└── resources/
```
## Search Patterns
Use ripgrep for fast vault-wide searches:
```bash
# Search by topic
rg "NixOS" ~/CODEX --type md
# Search by tag
rg "#programming" ~/CODEX --type md
# Search for links
rg "\\[\\[" ~/CODEX --type md
# Find recent notes
rg "date: 2026-01-2" ~/CODEX --type md
```
## Best Practices
1. **Capture quickly, organize later** - Don't overthink during capture
2. **Use WikiLinks generously** - Creates network effect
3. **Tag for retrieval** - Tag by how you'll search, not how you think
4. **Maintain PARA structure** - Keep notes in appropriate folders
5. **Archive regularly** - Move inactive content to 04-archive
6. **Use templates** - Consistent structure for same note types
7. **Leverage graph view** - Visual connections reveal patterns
## Templates
### Quick Capture Template
```markdown
---
date: {{date}}
created: {{timestamp}}
type: note
tags: #quick-capture
---
# {{title}}
## Notes
{{content}}
## Related
- [[]]
```
### Learning Template
```markdown
---
date: {{date}}
created: {{timestamp}}
type: learning
tags: #learning #{{topic}}
---
# {{topic}}
## What I Learned
{{key insight}}
## Why It Matters
{{application}}
## References
- [Source](url)
- [[]]
```
## Integration with Other Skills
| From | To knowledge-management | Trigger |
|------|----------------------|---------|
| research | Save findings | "Save this research" |
| task-management | Link to projects/areas | "Note about project X" |
| brainstorming | Save brainstorm | "Save this brainstorm" |
| daily-routines | Process inbox | "Weekly review" |
## Notes ## Notes

View File

@@ -120,7 +120,7 @@ All templates in `assets/templates/`:
If user wants PARA integration: If user wants PARA integration:
1. Prompt for Area assignment (from their defined Areas) 1. Prompt for Area assignment (from their defined Areas)
2. Can trigger task-management skill to create Anytype entries 2. Can trigger task-management skill to create Obsidian task entries
3. Include Area reference in kickoff/brief document 3. Include Area reference in kickoff/brief document
This is optional - not all users use PARA. This is optional - not all users use PARA.
@@ -131,7 +131,7 @@ This is optional - not all users use PARA.
|------|-----------------|--------| |------|-----------------|--------|
| brainstorming | Decision/context | Informs kickoff scope | | brainstorming | Decision/context | Informs kickoff scope |
| plan-writing | → basecamp | Todo lists, cards | | plan-writing | → basecamp | Todo lists, cards |
| plan-writing | → task-management | Anytype tasks (optional) | | plan-writing | → task-management | Obsidian tasks (optional) |
## Example Workflow ## Example Workflow

View File

@@ -34,9 +34,14 @@ This skill is a placeholder for future development. Core functionality to be add
- Resource recommendations - Resource recommendations
- Progress tracking - Progress tracking
### Output to Obsidian
- Save research findings as resource notes
- Create learning notes for topics
- Link related resources using WikiLinks
## Integration Points ## Integration Points
- **Anytype**: Save research findings to Resources - **Obsidian**: Save research findings to Resources (03-resources/)
- **Web Search**: Primary research source - **Web Search**: Primary research source
- **librarian agent**: External documentation lookup - **librarian agent**: External documentation lookup