Files
holocron/docs/adr/0011-provider-agnostic-issue-tracker.md
Defame1297 537c681bb9 docs: Chunk 3 grill, PRD, ADRs, and doc updates
- docs/prd/chunk-3-skills-library.md: PRD for 42-skill library rebuild;
  AGENTS.md refactor as prerequisite; factory bootstrap order (write-eval
  first); source field schema; upstream review cadence; design phase
  sequence; IaC/Gitea scope decisions
- docs/adr/0011-provider-agnostic-issue-tracker.md: file-based default,
  Gitea as provider adapter, "issue" as canonical cross-provider term
- docs/adr/0012-agents-md-provider-agnostic-entry-point.md: AGENTS.md as
  content source, CLAUDE.md as thin adapter; partially supersedes ADR-0005
- CONTEXT.md: 8 new glossary terms (AGENTS.md, skill composition, source
  field, provider-agnostic issue tracker, design phase sequence, PRD scope,
  issue scope, bidirectional reference principle); CLAUDE.md index model
  updated; stale workflow example fixed
- docs/ROADMAP.md: changelog tooling and IaC/Gitea scope resolved; when:
  field question updated; Chunk 3 grill housekeeping note added
- docs/spec/overview.md: Chunk 3 target updated with PRD link, skill count,
  and AGENTS.md prerequisite

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-17 14:22:59 +00:00

1.8 KiB

Provider-agnostic issue tracker with file-based default and provider adapters

Skills and workflows reference a "linked issue" generically rather than coupling to a specific issue tracker. In the file-based phase, an issue is a docs/issues/NNNN-<slug>.md file. When a provider MCP (e.g. Gitea MCP) is configured, skills detect it at runtime and use it instead. The active backend is determined by MCP availability — no config flag required. "Issue" is the canonical cross-provider term; GitHub, GitLab, and Gitea all use it natively.

Gitea-specific skills (setup-gitea-mcp, post-pr-review, create-issue) are a provider adapter at providers/gitea/ — structurally identical to how providers/claude-code/ adapts core content for Claude Code. They are not part of the core skill library.

Two alternatives were rejected. Gitea-specific skills in the core library would block use before Gitea is configured and embed a provider assumption into skills that are otherwise provider-neutral. Per-provider skill variants (e.g. implement-feature + implement-feature-gitea) create maintenance overhead with no functional gain — the only difference is the issue lookup mechanism, not the skill logic.

The file-based default was chosen because this repo must work before Gitea is set up. File-based issues are already the working convention (docs/issues/), established in Chunk 1. Gitea is the first concrete provider and will be configured after Chunk 3; existing file-based issues will be migrated at that point.

This decision makes the skills library usable on any machine without external service dependencies, while keeping Gitea integration as a first-class path once available. The provider adapter pattern (providers/gitea/) is consistent with ADR-0007 (provider adapters as symlinks) and ADR-0008 (factory boundary).