pal-e-posts

pal-e-posts

Notes

Plan 1
  • 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 (is_public: false 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 done 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:
      • Merge or rebase feature branches to main on all 3 repos
      • Validate LinkedIn access token is still valid (tokens expire)
      • Run linkedin-sdk test suite
      • Test create_post() with a test post (delete immediately after)

    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:
      • Decide on services list (AI agency consulting? Platform builds? Workflow automation?)
      • Choose CTA link (LinkedIn profile? Landing page? Calendar link?)
      • Write a reusable services/CTA block that goes in all posts
      • Update all draft posts with the finalized block

    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:
      • Move post from backlog → in_progress on board
      • Edit and polish the draft content
      • Move to qa → needs_approval (Lucas reviews)
      • Publish to LinkedIn (manually via SDK if MCP not ready, or via MCP if Phase 4 is done)
      • Move to done with label status:posted
      • Update post note: replace draft tag with published, add publication date

    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:
      • Install linkedin-mcp-scheduler locally (pip or uv)
      • Configure in ~/.claude/settings.json or project MCP config
      • Start the publisher daemon
      • Test: schedule a post, verify it appears in SQLite DB, verify it publishes at the scheduled time

    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:
      • Diagnose ImagePullBackOff (Harbor creds? Tag mismatch? Missing image?)
      • Build and push image to Harbor
      • Fix k8s manifests
      • Verify pod is Running and MCP endpoint is reachable

    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:
      • Add pal-e-docs integration to linkedin-mcp-scheduler (read note content by slug)
      • Add board item update on schedule/publish events
      • Test end-to-end: draft in pal-e-docs → schedule via MCP → auto-publish → board moves to done

    Key Files

    Phase File Repo Change
    1 various all 3 linkedin repos Merge feature branches to main
    4 ~/.claude/settings.json claude-custom Add linkedin-mcp-scheduler MCP config
    5 k8s/deployment.yaml 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)
Project Page 1
  • pal-e-posts — Project Page project-pal-e-posts

    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 backlog Raw idea captured
    Todo todo Worth drafting
    Next Up next_up Actively writing
    In Progress in_progress Editing / polishing
    QA qa Review / proofread
    Needs Scheduling needs_approval Approved, pick a date/time
    Scheduled / Posted done Label: status:scheduled or status:posted

    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
    linkedin-sdk Forgejo Python SDK for LinkedIn API v202510. PyPI: ldraney-linkedin-sdk Published, on feature branch
    linkedin-mcp-scheduler Forgejo MCP server for scheduling posts. PyPI: linkedin-mcp-scheduler-ldraney Published, on feature branch
    linkedin-scheduler-remote 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")

Doc 3
  • Why Hallucinations Have Always Been a Corporate Problem post-hallucinations-corporate-problem

    Why hallucinations have always been a corporate problem

    • Cause good people always lie
    • Personal politics is always part of the game
    • Scopes and value are not always obvious until after many iterations and careful data observability practices

    My money is on that my DORA ELITE AI ENTERPRISE has less hallucinations than your human corporation.

    Depend on people for true integrity,
    But data entry, integrity, and infrastructure is an AI problem.

    If you want personalized workflows and a knowledge base that grows with you, reach out to me:

    Services:

    • AI Agent Architecture & Workflow Automation
    • Self-Hosted Platform Engineering (k8s, CI/CD, Observability)
    • Custom MCP Server Development & Integration
    • Knowledge Management Systems
    • DORA Elite Consulting

    Connect with me on LinkedIn

    Draft — 2026-03-14. Target: LinkedIn.

  • Gratitude — Psychology Degree & Matt Draper post-gratitude-psychology-degree

    2026-02-26

    I'm thankful for my degree in Psychology from Utah Valley University, where my curiosity was encouraged and special shoutout to Matt Draper who made a lasting impact on my ability to promote valuable investigation into philosophical questions that might just be dismissed as "subjective".

    Draft — no CTA yet. This one is personal, not a services post. Target platform TBD.

  • What Is a Platform? post-what-is-a-platform

    What is a platform?

    Perhaps it's when from a single directory you can:

    • automate infrastructure configuration with SaltStack
    • deploy containerization orchestration with Terraform
    • version control deployment automation and open source pipelines, all self-hosted
    • push full stack applications with integration tests, security tests, validation
    • manage a DORA Elite AI Enterprise and build documentation that grows with your projects
    • research for future projects

    That's augmentation and optimization of individual autonomy and organization.

    How are you optimizing yourself?
    How are you optimizing your team?
    How are you optimizing your growth?

    If you are interested in building your AI Agency:

    Services:

    • AI Agent Architecture & Workflow Automation
    • Self-Hosted Platform Engineering (k8s, CI/CD, Observability)
    • Custom MCP Server Development & Integration
    • Knowledge Management Systems
    • DORA Elite Consulting

    Book a consultation: gcal-scheduler.tail5b443a.ts.net
    Connect with me: linkedin.com/in/lucasdraney

    Draft — 2026-03-14. Target: LinkedIn.