Plan: Content Management Pipeline

plan-pal-e-posts Plan

plan deprecated

Vision

A personal content management pipeline where ideas flow from raw thought to published post, powered by pal-e-docs kanban, LinkedIn SDK, and MCP scheduling. DORA Elite applied to content: measure posting frequency, lead time from idea to publish, and never lose a thought.

Projects & Repos Touched

Project/Repo Platform Role in this plan
Posts (pal-e-docs project) pal-e-docs Content storage, kanban board, revision history
linkedin-sdk Forgejo Python SDK for LinkedIn API v202510 (posting engine)
linkedin-mcp-scheduler Forgejo MCP server for scheduling posts via conversational AI
linkedin-scheduler-remote Forgejo Remote MCP connector for Claude.ai (Streamable HTTP)

Context

Three LinkedIn repos exist on Forgejo, all published to PyPI, but all stuck on feature branches (not main). None are deployed or configured as MCP servers. The Posts project has a board (board-posts) with 3 drafts in backlog. OAuth credentials are configured at ~/secrets/linkedin/credentials.env. The pipeline is: draft in pal-e-docs → kanban → schedule via MCP → SDK posts to LinkedIn API.
What's already done:
  • [x] Posts project + board + project page created
  • [x] 3 post drafts in backlog (Draper gratitude, What Is a Platform, Hallucinations)
  • [x] linkedin-sdk published to PyPI (v0.1.2)
  • [x] linkedin-mcp-scheduler published to PyPI (v0.1.2)
  • [x] linkedin-scheduler-remote published to PyPI (v0.2.0)
  • [x] OAuth credentials configured
  • [ ] Repos on main branch
  • [ ] SDK validated (can actually post)
  • [ ] MCP server deployed
  • [ ] MCP configured in Claude Code
  • [ ] First post published

Previous Plan

None. First plan for the Posts project.

Depends On

None. LinkedIn SDK and OAuth are independent of platform plans.

Decisions Made

Decision Rationale
Posts project is private (<code>is_public: false</code> on all notes) Drafts are personal content. Auth enforcement is aspirational until pal-e-docs gets Keycloak integration — Tailscale perimeter is the current wall.
Board columns map to content pipeline (backlog → done) 7 board columns cover 8 statuses. "scheduled" and "posted" share <code>done</code> with labels.
LinkedIn first, multi-platform later SDK and MCP exist for LinkedIn. Extend to blog/email/X in future phases.
Local MCP before k8s deploy Get the pipeline working locally first. k8s deploy is Phase 5 (linkedin-scheduler-remote fix).

Phases

Phase 1: Repo hygiene + SDK validation (COMPLETED)

  • Goal: All 3 LinkedIn repos on main with clean branches. Validate SDK can actually post to LinkedIn.
  • Owner: agent-dev
  • Repos: linkedin-sdk, linkedin-mcp-scheduler, linkedin-scheduler-remote
  • Steps:

Phase 2: Define offering (NOT STARTED)

  • Goal: Define Lucas's services list, CTA link, and professional positioning. Fill in the [add link here] and [services] placeholders across all drafts.
  • Owner: main session (Lucas + Betty Sue)
  • Steps:

Phase 3: Polish & publish first post (IN PROGRESS)

  • Goal: Move "What Is a Platform?" through the full kanban pipeline to published on LinkedIn.
  • Owner: main session
  • Steps:

Phase 4: MCP scheduler local deployment (NOT STARTED)

  • Goal: linkedin-mcp-scheduler running locally and configured as MCP server in Claude Code.
  • Owner: agent-dev
  • Repo: linkedin-mcp-scheduler
  • Steps:

Phase 5: Fix linkedin-scheduler-remote k8s deploy (NOT STARTED)

  • Goal: Fix the ImagePullBackOff, get the remote MCP connector running in k8s for Claude.ai access.
  • Owner: agent-dev
  • Repo: linkedin-scheduler-remote
  • Steps:

Phase 6: Pipeline integration — pal-e-docs → MCP (NOT STARTED)

  • Goal: MCP scheduler reads post content from pal-e-docs notes. Board items auto-move when posts are scheduled/published.
  • Owner: agent-dev
  • Steps:

Key Files

Phase File Repo Change
1 various all 3 linkedin repos Merge feature branches to main
4 <code>~/.claude/settings.json</code> claude-custom Add linkedin-mcp-scheduler MCP config
5 <code>k8s/deployment.yaml</code> linkedin-scheduler-remote Fix image reference

Verification

  • [ ] All 3 repos on main, CI green
  • [ ] SDK can create and delete a test post on LinkedIn
  • [ ] Services list and CTA link finalized
  • [ ] First post published on LinkedIn
  • [ ] MCP scheduler configured in Claude Code, can schedule posts
  • [ ] linkedin-scheduler-remote pod Running in k8s
  • [ ] End-to-end: pal-e-docs note → MCP schedule → LinkedIn publish → board auto-moves

Next Plan Seeds

  • Multi-platform posting (blog, email, X) — extend beyond LinkedIn
  • Custom board columns for pal-e-docs — support 8+ statuses natively
  • Content analytics — track engagement metrics back into pal-e-docs
  • Personal project template — template-personal-page for Remember/Posts style projects
  • pal-e-docs auth integration — Keycloak for per-user private notes
  • project-posts — project page
  • board-posts — content pipeline kanban
  • plan-pal-e-platform — Keycloak deployment (auth dependency)
  • plan-2026-03-08-tryout-prep — Phase 5 (Keycloak realm, OIDC pattern)