Skip to content

Make work-item artifact hosting fully provider-agnostic (Notion, Linear, …) #3

Description

@tbrownio

Problem

The skill system should be platform-agnostic, with a mechanism for configuring different artifact-hosting providers (e.g. Notion, Linear). PR #2 took the first step — publish-work-item.md now treats the host as a per-project provider: opt-in in CLAUDE.md, with GitHub-only marker comments as the default — but provider-specific references still leak through the shared skill text:

  • claude/skills/do/SKILL.md — Step 0 names the notion skill and "Notion link" directly (Load step, plan stage, wrap-up upload).
  • references/publish-work-item.md — frontmatter key example is notion:; the cross-link line format (**Notion:** <url>) is Notion-branded and load-bearing (pull greps for it).
  • templates/CLAUDE.md — Work-item tracking YAML mixes generic (provider:) with Notion-specific keys (notion_data_source, properties).
  • claude/skills/notion/SKILL.md — fine as a provider implementation, but it currently defines the publish/upload/pull contract implicitly rather than conforming to a documented one.

Desired end state

  • A documented provider contract: any provider skill implements publish, upload, pull with the same inputs/outputs (local ./tmp/<id>/ in, page URL out; files column + durable raw copies; status updates).
  • Shared skills (/do, publish-work-item.md, templates) reference only "the configured provider", never a specific one — a generic cross-link line (e.g. **Work item:** <url>) and a generic frontmatter key.
  • Provider-specific config lives entirely in the provider skill + the project CLAUDE.md Work-item tracking section.
  • Adding a Linear provider requires writing one new skill, zero edits to shared references.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions