pal-e-posts
Notes
Plan 1
-
Plan: Content Management Pipeline
plan-pal-e-postsVision
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: falseon 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 donewith 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
drafttag withpublished, 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.jsonor 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.jsonclaude-custom Add linkedin-mcp-scheduler MCP config 5 k8s/deployment.yamllinkedin-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
Related
project-posts— project pageboard-posts— content pipeline kanbanplan-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-postsVision
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 backlogRaw idea captured Todo todoWorth drafting Next Up next_upActively writing In Progress in_progressEditing / polishing QA qaReview / proofread Needs Scheduling needs_approvalApproved, pick a date/time Scheduled / Posted doneLabel: status:scheduledorstatus:postedTag 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-sdkForgejo Python SDK for LinkedIn API v202510. PyPI: ldraney-linkedin-sdkPublished, on feature branch linkedin-mcp-schedulerForgejo MCP server for scheduling posts. PyPI: linkedin-mcp-scheduler-ldraneyPublished, on feature branch linkedin-scheduler-remoteForgejo Remote MCP connector for Claude.ai Pod ImagePullBackOff, on feature branch Conventions
- Slug pattern:
post-{descriptive-name} - Note type:
post - Tags:
private,draftwhile drafting. Add platform tag (linkedin,blog,email) when target is known. Replacedraftwithpublishedwhen 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-problemWhy 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
Draft — 2026-03-14. Target: LinkedIn.
-
Gratitude — Psychology Degree & Matt Draper
post-gratitude-psychology-degree2026-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-platformWhat 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/lucasdraneyDraft — 2026-03-14. Target: LinkedIn.