summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorPaul Buetow <paul@buetow.org>2025-07-12 22:12:21 +0300
committerPaul Buetow <paul@buetow.org>2025-07-12 22:12:21 +0300
commit24691b6e87074abb84b46fd9d5e916c803bf168d (patch)
treeac00ea71ba515f4574733bf4b35acf6d4444283a
parent2752689859b006b92509c359b9a1d9daa60b9efa (diff)
remove claude.md
-rw-r--r--CLAUDE.md87
1 files changed, 0 insertions, 87 deletions
diff --git a/CLAUDE.md b/CLAUDE.md
deleted file mode 100644
index 2f4c5b8..0000000
--- a/CLAUDE.md
+++ /dev/null
@@ -1,87 +0,0 @@
-# CLAUDE.md
-
-This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.
-
-## Project Overview
-
-Gos is a command-line social media scheduling tool written in Go that replaces Buffer.com. It allows users to schedule and manage posts across multiple social media platforms (Mastodon, LinkedIn, and a "Noop" pseudo-platform for tracking).
-
-### Key Architecture Components
-
-- **Entry System**: Text files in `~/.gosdir/` represent posts, with filename tags controlling platform targeting and scheduling behavior
-- **Platform Abstraction**: `internal/platforms/platform.go` defines the common interface, with platform-specific implementations in subdirectories
-- **Queue Management**: Posts move through lifecycle stages: `.txt` → `.queued` → `.posted` in `~/.gosdir/db/platforms/PLATFORM/`
-- **Tag System**: Both filename tags (e.g., `post.share:mastodon.prio.txt`) and inline tags control post behavior
-- **OAuth2 Flow**: LinkedIn uses OAuth2 authentication stored in `~/.config/gos/gos.json`
-
-### Core Workflow
-
-1. Users create `.txt` files in `gosDir` (default `~/.gosdir/`)
-2. `queue.Run()` processes files and moves them to platform-specific queues
-3. `schedule.Run()` selects posts based on targets, priorities, and timing rules
-4. Platform implementations handle actual posting
-5. Posted files are marked with `.posted` extension and timestamp
-
-## Development Commands
-
-### Build and Test
-```bash
-# Build both binaries
-go-task build
-# or manually:
-go build -o gos cmd/gos/main.go
-go build -o gosc cmd/gosc/main.go
-
-# Run tests
-go-task test
-# or manually:
-go test -v ./...
-
-# Development build with race detection
-go-task dev
-```
-
-### Code Quality
-```bash
-# Lint code
-go-task lint
-# or manually:
-golangci-lint run
-
-# Vet code
-go-task vet
-# or manually:
-go vet ./...
-
-# Run fuzzing (for specific packages)
-go-task fuzz
-```
-
-### Installation
-```bash
-# Install to ~/go/bin/
-go-task install
-```
-
-## Code Structure Notes
-
-- **Main entry points**: `cmd/gos/main.go` (main app) and `cmd/gosc/main.go` (composer)
-- **Configuration**: `internal/config/` handles CLI args and JSON config file management
-- **Platform plugins**: Each platform in `internal/platforms/` implements the common `Post()` interface
-- **File processing**: `internal/entry/` handles parsing text files and extracting tags
-- **Scheduling logic**: `internal/schedule/` manages timing, targets, and post selection
-- **Tag parsing**: `internal/tags/` handles both filename and inline tag extraction
-
-## Platform Integration
-
-When adding new platforms:
-1. Create new directory under `internal/platforms/`
-2. Implement the `Post(ctx, args, sizeLimit, entry)` interface
-3. Add platform alias to `platforms.go` aliases map
-4. Handle authentication/configuration in platform-specific code
-
-## Configuration Management
-
-- Config file: `~/.config/gos/gos.json` contains API keys and OAuth tokens
-- Database: `~/.gosdir/db/platforms/` contains queued and posted files
-- Cache: `~/.gosdir/cache/` (configurable via `--cacheDir`) \ No newline at end of file