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: "" }, - { key: "options", text: "" }, - { key: "decision", text: "" }, - { key: "rationale", text: "" }, - { key: "next_steps", text: "" }, - { key: "framework", select: "" }, - { key: "status", select: "draft" } - ] +File: ~/CODEX/03-resources/brainstorms/YYYY-MM-DD-[topic].md + +--- +date: {{date}} +created: {{timestamp}} +type: brainstorm +framework: {{framework_used}} +status: {{draft|final|archived}} +tags: #brainstorm #{{framework_tag}} +--- + +# {{topic}} + +## Context +{{situation and trigger}} + +## 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**: -- `bafyreiatkdbwq53shngaje6wuw752wxnwqlk3uhy6nicamdr56jpvji34i` - None -- `bafyreiaizrndgxmzbbzo6lurkgi7fc6evemoc5tivswrdu57ngkizy4b3u` - Pros/Cons -- `bafyreiaym5zkajnsrklivpjkizkuyhy3v5fzo62aaeobdlqzhq47clv6lm` - SWOT -- `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. +**Status tags** (use in `status:` frontmatter): +- `draft` - Initial capture +- `final` - Decision made +- `archived` - No longer active --- ## 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 3. Click Templates (top right) → Click + to create template 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" | | 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. diff --git a/skills/brainstorming/references/anytype-workflow.md b/skills/brainstorming/references/anytype-workflow.md deleted file mode 100644 index 9051e95..0000000 --- a/skills/brainstorming/references/anytype-workflow.md +++ /dev/null @@ -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: - space_id: - properties: [ - { key: "linked_projects", objects: [""] } - ] - -# Link to tasks -Anytype_API-update-object - object_id: - space_id: - properties: [ - { key: "linked_tasks", objects: ["", ""] } - ] -``` - -## 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 diff --git a/skills/brainstorming/references/obsidian-workflow.md b/skills/brainstorming/references/obsidian-workflow.md new file mode 100644 index 0000000..76d7685 --- /dev/null +++ b/skills/brainstorming/references/obsidian-workflow.md @@ -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. diff --git a/skills/knowledge-management/SKILL.md b/skills/knowledge-management/SKILL.md index 5ac8e44..4460bb9 100644 --- a/skills/knowledge-management/SKILL.md +++ b/skills/knowledge-management/SKILL.md @@ -1,59 +1,209 @@ --- 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 --- # 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 Anytype +- Minimal friction capture to Obsidian vault (~/CODEX/) - Auto-tagging based on content -- Link to related notes +- Link to related notes using WikiLinks +- Use frontmatter for metadata -### Knowledge Retrieval -- Semantic search across notes -- Tag-based filtering -- Connection discovery +## Knowledge Retrieval -### Resource Organization -- PARA Resources category management -- Topic clustering -- Archive maintenance +- Fast search using ripgrep across vault +- Tag-based filtering (#tag syntax) +- WikiLink connections for related notes +- 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 -- Version tracking +- Version tracking via Git - Cross-reference linking +- Template-driven structure ## Integration Points -- **Anytype**: Primary storage (Resources type) +- **Obsidian**: Primary storage (Markdown vault at ~/CODEX/) - **task-management**: Link notes to projects/areas -- **research**: Save research findings +- **research**: Save research findings to Resources -## Quick Commands (Future) +## Quick Commands | Command | Description | |---------|-------------| -| `note: [content]` | Quick capture | -| `find notes on [topic]` | Search knowledge base | -| `link [note] to [note]` | Create connection | +| `note: [content]` | Quick capture to inbox | +| `find notes on [topic]` | Search vault with ripgrep | +| `link [note] to [note]` | Create WikiLink connection | | `organize [tag/topic]` | Cluster related notes | -## Anytype Types +## Note Structure -- `note` - Quick captures -- `resource` - Organized reference material -- `document` - Formal documentation +### Quick Note Format +```markdown +--- +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 diff --git a/skills/plan-writing/SKILL.md b/skills/plan-writing/SKILL.md index 54a57b6..e78e3d9 100644 --- a/skills/plan-writing/SKILL.md +++ b/skills/plan-writing/SKILL.md @@ -120,7 +120,7 @@ All templates in `assets/templates/`: If user wants PARA integration: 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 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 | | plan-writing | → basecamp | Todo lists, cards | -| plan-writing | → task-management | Anytype tasks (optional) | +| plan-writing | → task-management | Obsidian tasks (optional) | ## Example Workflow diff --git a/skills/research/SKILL.md b/skills/research/SKILL.md index 1a611bc..6876768 100644 --- a/skills/research/SKILL.md +++ b/skills/research/SKILL.md @@ -34,9 +34,14 @@ This skill is a placeholder for future development. Core functionality to be add - Resource recommendations - Progress tracking +### Output to Obsidian +- Save research findings as resource notes +- Create learning notes for topics +- Link related resources using WikiLinks + ## Integration Points -- **Anytype**: Save research findings to Resources +- **Obsidian**: Save research findings to Resources (03-resources/) - **Web Search**: Primary research source - **librarian agent**: External documentation lookup