Skip to content

chore(skills): move blog-authoring and CMS skills to the shared library#157

Merged
axross merged 4 commits into
mainfrom
claude/agent-skills-blogging-migration-u6lcuv
Jul 23, 2026
Merged

chore(skills): move blog-authoring and CMS skills to the shared library#157
axross merged 4 commits into
mainfrom
claude/agent-skills-blogging-migration-u6lcuv

Conversation

@axross

@axross axross commented Jul 23, 2026

Copy link
Copy Markdown
Owner

Summary

The blog-post authoring workflow, editorial/voice guidance, and Payload CMS MCP
operation guidance have moved into a separate, reusable agent-skills library
that drives writing and CMS edits through this site's Payload MCP server. This
PR completes the btnopen.com side of that migration: it removes the skills that
now live externally and repoints everything that referenced them.

Why: those skills were personal, cross-project authoring assets with no
btnopen-specific code coupling — a better fit for a shared library than this
public application repo. Centralizing them removes duplication and keeps this
repository focused on the app and its CMS content model.

What changed:

  • Removed three skills now owned by the external library:
    • author — the /author blog-post authoring workflow.
    • blog-post-authoring-guidelines — editorial rules and the author-voice
      references.
    • payload-cms-mcp — the CMS MCP operation how-to (new posts and edits to
      existing ones now run from the external library too).
  • Documented the CMS content model in the README — a new "CMS content
    model" section specifies the blog-posts outline / authoringNotes
    authoring-artifact fields (their Agentic-tab placement, non-localized nature,
    never-rendered/agentic-view visibility, and what belongs in each). The external
    authoring skill defers its field specification here, so the README is now the
    source of truth for it. This content was lifted from the removed
    authoring-artifacts reference rather than lost.
  • Updated the routing/index docs — dropped the three rows from the AGENTS.md
    skill index (and the /author workflow entry point), added a Project Overview
    note that authoring and CMS-editing operations live in the external library
    while this repo owns the CMS content model and the MCP server, and adjusted the
    load-pattern classification table and its totals.
  • Rewrote the README /author and MCP references — the "Development
    workflow" section now points to the external library for authoring, and the
    "Connecting AI agents to Payload CMS (MCP)" section documents the server
    (endpoint, auth, tool discovery, caveats) without pointing at the removed
    skill.

The external library is referenced generically throughout (no repository name or
link) because this repository is public and the library is not.

Related issues

No tracking issue — this is the follow-up half of a skills migration whose first
half landed in the external library.

Verification

  • npx @biomejs/biome@2.4.11 check (the pinned npm run lint) → exit 0,
    212 files checked. The one reported warning is pre-existing in
    scripts/prune-preview-blobs.mjs and is untouched by this change. Biome does
    not process Markdown (files.ignoreUnknown: true), so the .md-only diff is
    outside its coverage — see the manual checks below.
  • Dangling-reference sweepgrep across the repo confirms zero remaining
    references to the removed skills (author, blog-post-authoring-guidelines,
    payload-cms-mcp) in any Markdown, JSON, or source file.
  • Manual doc checks — the new README anchor (#cms-content-model) resolves;
    the collection slugs named in the new section (blog-posts, tags,
    cover-images, media, payload-mcp-api-keys) were verified against
    payload/collections/*; the load-pattern totals (2 runnable · 1 always-on ·
    16 on-demand) match the remaining rows.
  • Not run: build / test:unit / test:e2e — no code, route, config, or
    TypeScript surface changed (documentation and skill Markdown only).

Risks and breaking changes

  • Behavioral change for agents run inside this repo: btnopen.com no longer
    ships in-repo skills for writing posts or editing CMS content — those
    operations are now expected to run from the external agent-skills library
    (which connects to this site's Payload MCP server). The README "Connecting AI
    agents to Payload CMS (MCP)" section is retained, so connecting any MCP-capable
    agent to the server is still fully documented here.
  • No runtime, route, schema, or public-site impact — nothing user-facing
    changes, and no application code is touched.
  • Fully reversible via git if the split needs to be reconsidered.

Notes for reviewers

  • Start with the README "CMS content model" section — it is the intended
    destination for the removed authoring-artifacts specification and the part
    worth checking for fidelity against the deleted reference.
  • Two decisions to confirm: (1) removing payload-cms-mcp as well (full
    consolidation — all CMS create/edit operations move out), and (2) referencing
    the external library generically rather than by name/link, to avoid exposing a
    non-public repository from this public one.

Generated by Claude Code

claude added 2 commits July 23, 2026 02:11
…ADME

The blog-post authoring workflow and editorial/voice guidance now live in a
separate, reusable agent-skills library that drives writing through this site's
Payload CMS MCP server. Remove the skills that moved out and adjust everything
that pointed at them.

- Delete the `author` workflow skill and the `blog-post-authoring-guidelines`
  skill (including its author-voice references).
- Keep `payload-cms-mcp`: it documents this repository's own MCP server and
  supports ad-hoc existing-post edits from within the repo.
- Lift the `outline` / `authoringNotes` field specification into a new "CMS
  content model" section in the README — the external authoring skill defers its
  field spec here, so this becomes the source of truth.
- Update the AGENTS.md skill index and workflow entry points, the load-pattern
  classification table and totals, and the two `payload-cms-mcp` back-references
  that pointed at the removed authoring-artifacts reference.
- Reference the external library generically (no repo name/link) to avoid
  leaking a private repository into this public repository's docs.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012upW731xn25t4dH6NNPzBx
Complete the migration by moving CMS-editing operation guidance out too, so all
create-and-edit operations on this site's CMS content — new posts and edits to
existing ones — now run from the separate agent-skills library rather than from
this repository.

- Delete the `payload-cms-mcp` skill and its references.
- Remove its skill-index row from AGENTS.md and its load-pattern classification
  entry (adjusting the totals), and reword the Project Overview note so the
  external library owns both authoring and CMS-editing operations while this
  repository owns the CMS content model and the MCP server itself.
- Reword the README's MCP section so it documents the server without pointing at
  the removed skill.

The README "Connecting AI agents to Payload CMS (MCP)" section still documents
the endpoint, authentication, tool discovery, and caveats for any MCP-capable
agent connecting to the server.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012upW731xn25t4dH6NNPzBx
@axross
axross marked this pull request as draft July 23, 2026 05:25
@axross

axross commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

@claude review


Generated by Claude Code

@claude

claude Bot commented Jul 23, 2026

Copy link
Copy Markdown

Code review

0 important, 0 nits.

No issues found. This is a documentation/skill-only migration (22 files, no application code, routes, or Payload schema touched), so build/test:unit/test:e2e are correctly not required here.

Mandatory checks (per REVIEW.md):

  • Skill conformance — checked against Agent Skills Best Practices (governs adding/deleting/auditing skills and the master skill index). Verified: AGENTS.md's skill index and workflow-entry-points table both drop the three removed rows; load-pattern-classification.md's totals (2 runnable · 1 always-on · 16 on-demand) match the remaining row count; a full-tree grep and the repo's own check-links.sh confirm zero dangling references (path-based or name-based) to author, blog-post-authoring-guidelines, or payload-cms-mcp anywhere in .claude/, AGENTS.md, README.md, or config files.
  • Acceptance criteria — the pull request links no tracking issue (stated explicitly in "Related issues"), so there is no acceptance-criteria list to verify against.

Fidelity spot-checks (per the PR's own "Notes for reviewers," which flagged the new README "CMS content model" section as worth checking against the deleted authoring-artifacts.md reference):

  • The lifted outline/authoringNotes field-placement table is a faithful, non-lossy condensation of the deleted reference.
  • The #cms-content-model anchor resolves.
  • Collection slugs named in the new README section (blog-posts, tags, cover-images, media, payload-mcp-api-keys) all match the actual Payload collection configs.
  • The outline/authoringNotes field names, their "Agentic" tab placement, and the ?agentic=true/&draft=true URL params all match the current payload/collections/blog-post.ts and route implementation.

The PR body itself flags two decisions for the maintainer to confirm (full payload-cms-mcp consolidation, and referencing the external library generically rather than by name) — those are product/scope calls for @axross, not defects, so left as-is here.

@axross
axross marked this pull request as ready for review July 23, 2026 05:31
The CMS content model section listed what belongs in `authoringNotes` but not how
to structure it. Add the recommended section skeleton (ねらい / 結論 / 対象読者 /
編集方針 / 進行状態 / 公開前チェックリスト), the single-merged-checklist rule, and
the requirement to record 進行状態 with phase, completed work, and artifact links.

This is the authoringNotes field's content contract — the resumable-state
guidance that lets a fresh session continue a post from CMS state alone. It was
part of the removed authoring-artifacts reference and had no home after the
migration; the README is the declared source of truth for the field spec, which
the external authoring skill defers to.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012upW731xn25t4dH6NNPzBx
@axross
axross marked this pull request as draft July 23, 2026 06:31
@axross

axross commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

@claude review


Generated by Claude Code

Comment thread README.md Outdated
@claude

claude Bot commented Jul 23, 2026

Copy link
Copy Markdown

Code review

0 important, 2 nits.

Re-reviewed after the latest commit (6684f2a, adding the authoringNotes structure guidance to the README). This remains a documentation/skill-only migration (22 files, no application code, routes, or Payload schema touched).

Mandatory checks (per REVIEW.md):

  • Skill conformance — checked against Agent Skills Best Practices (governs adding/deleting/auditing skills and the master skill index). All 19 removed skill files are pure deletions; only AGENTS.md, README.md, and load-pattern-classification.md carry content edits. Verified: the skill index and workflow-entry-points table both drop the three removed rows; the load-pattern totals (2 runnable · 1 always-on · 16 on-demand) match the remaining rows; running the skill's own scripts/check-links.sh reports "links OK (134 Markdown files checked)" with zero dangling references anywhere in the tree (including .github/workflows/).
  • Acceptance criteria — the pull request links no tracking issue (stated explicitly in "Related issues"), so there is no acceptance-criteria list to verify against.

Nits:

  • README.md — the new "CMS content model" section lists "the site profile" among the "main collections," but website is a Payload Global (GlobalConfig in payload/globals/website.ts), not a collection — worth distinguishing now that this section is the declared source of truth for the content model. (inline comment)
  • PR title (chore(skills): migrate blog-authoring and CMS-editing skills to the shared library, 82 chars) runs over the "~72 characters" guidance in commit-messages.md — this becomes the squash-commit subject at merge time.

Both prior fidelity spot-checks still hold: the #cms-content-model anchor resolves, and the collection slugs named in the section (blog-posts, tags, cover-images, media, payload-mcp-api-keys) all match the actual Payload config.

@axross axross changed the title chore(skills): migrate blog-authoring and CMS-editing skills to the shared library chore(skills): move blog-authoring and CMS skills to the shared library Jul 23, 2026
…lection

Address a review nit: the CMS content model section listed "the site profile"
among the collections, but it is the `website` global (a Payload GlobalConfig
singleton), not a collection. Distinguish it now that this section is the
declared source of truth for the content model.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_012upW731xn25t4dH6NNPzBx
@axross

axross commented Jul 23, 2026

Copy link
Copy Markdown
Owner Author

@claude review


Generated by Claude Code

@claude

claude Bot commented Jul 23, 2026

Copy link
Copy Markdown

Code review

0 important, 0 nits.

Re-reviewed at the tip (deaa531), which fixes the "website" global/collection nit flagged in the previous review round. No new issues found. This remains a documentation/skill-only migration (22 files, no application code, routes, or Payload schema touched), so build/test:unit/test:e2e are correctly not required.

Mandatory checks (per REVIEW.md):

  • Skill conformance — checked against Agent Skills Best Practices, which governs the master skill index and its load-pattern-classification.md companion. Verified: AGENTS.md's skill index and workflow-entry-points table both drop the three removed rows (author, blog-post-authoring-guidelines, payload-cms-mcp); the load-pattern totals (2 runnable · 1 always-on · 16 on-demand) match the remaining rows by direct count; a repo-wide search finds zero remaining path or name references to any of the three removed skills.
  • Acceptance criteria — the pull request links no tracking issue ("Related issues" states this explicitly), so there is no acceptance-criteria list to verify against.

Fidelity spot-checks (continuing from the PR's own "Notes for reviewers"):

  • The new README "CMS content model" section's outline/authoringNotes field descriptions (Agentic-tab placement, non-localized, never-rendered) match payload/collections/blog-post.ts exactly.
  • The website global is correctly described as a Payload Global (payload/globals/website.ts), now distinguished from the "main collections" list — the fix for the prior nit is accurate.
  • The #cms-content-model anchor resolves; no README table of contents exists that needs separate syncing.

@axross
axross marked this pull request as ready for review July 23, 2026 06:43
@axross
axross merged commit 1568e35 into main Jul 23, 2026
5 checks passed
@axross
axross deployed to Preview July 23, 2026 06:45 — with GitHub Actions Active
@github-actions

Copy link
Copy Markdown
Contributor

🚀 Preview deployment

Torn down — the isolated Turso database (preview-pr-157) and this pull request's preview media were destroyed.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants