pal-e-posts — Project Page

project-pal-e-posts Project Page

active project-page

Vision

Personal content management. A private workspace for preparing posts for LinkedIn, blogs, emails, and anywhere else thoughts become public-facing. Draft here, polish here, schedule and publish from here.

User Stories

Role Story Success Metric
Lucas Capture a raw idea for a post and develop it through drafts to publication-ready Posts move through kanban from backlog to posted with clear revision history
Lucas Schedule posts for optimal timing and track publication Scheduled posts auto-publish via linkedin-mcp-scheduler. Posted items tracked with date and platform.
Lucas Manage content pipeline visually across all target platforms Board shows all posts by maturity stage. Tags identify target platform.

Plan

Active: plan-posts — Content Management Pipeline. 6 phases: repo hygiene, define offering, first post, MCP local, k8s deploy, pipeline integration.

Board

Board: board-posts. Content pipeline mapped to board columns:
Status Board Column Meaning
Backlog <code>backlog</code> Raw idea captured
Todo <code>todo</code> Worth drafting
Next Up <code>next_up</code> Actively writing
In Progress <code>in_progress</code> Editing / polishing
QA <code>qa</code> Review / proofread
Needs Scheduling <code>needs_approval</code> Approved, pick a date/time
Scheduled / Posted <code>done</code> Label: <code>status:scheduled</code> or <code>status:posted</code>
Tag posts with target platform: linkedin, blog, email.

Status

3 drafts in backlog as of 2026-03-14. No posts published yet. LinkedIn SDK + MCP scheduler + remote connector all exist on Forgejo (all on feature branches, none deployed). OAuth credentials configured. Plan created: plan-posts.

Milestones

None yet. First milestone: first published post on LinkedIn.

Architecture

Content pipeline:
  • pal-e-docs — note storage, board kanban, revision history
  • linkedin-sdk — Python SDK for LinkedIn API v202510 (typed, async, PyPI published)
  • linkedin-mcp-scheduler — MCP server wrapping the SDK for conversational scheduling
  • linkedin-scheduler-remote — Streamable HTTP connector for Claude.ai
  • OAuth — credentials at ~/secrets/linkedin/credentials.env
Flow: draft in pal-e-docs → move through kanban → schedule via MCP → SDK posts to LinkedIn API.

Repos

Repo Platform Role Status
<code>linkedin-sdk</code> Forgejo Python SDK for LinkedIn API v202510. PyPI: <code>ldraney-linkedin-sdk</code> Published, on feature branch
<code>linkedin-mcp-scheduler</code> Forgejo MCP server for scheduling posts. PyPI: <code>linkedin-mcp-scheduler-ldraney</code> Published, on feature branch
<code>linkedin-scheduler-remote</code> Forgejo Remote MCP connector for Claude.ai Pod ImagePullBackOff, on feature branch

Conventions

  • Slug pattern: post-{descriptive-name}
  • Note type: post
  • Tags: private,draft while drafting. Add platform tag (linkedin, blog, email) when target is known. Replace draft with published when posted.
  • All posts is_public: false — drafts are private by default.
  • Board column mapping: see Board section above.

Inbox

Query: list_notes(project="posts", note_type="post")