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
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.mdnow treats the host as a per-projectprovider:opt-in inCLAUDE.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 thenotionskill and "Notion link" directly (Load step, plan stage, wrap-up upload).references/publish-work-item.md— frontmatter key example isnotion:; 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
publish,upload,pullwith the same inputs/outputs (local./tmp/<id>/in, page URL out; files column + durable raw copies; status updates)./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.CLAUDE.mdWork-item trackingsection.🤖 Generated with Claude Code