Add exploratory and design docs for porting dirigent skills to reliquary, including: - Explore port options for the gitea skill (in-plugin vs vendored) - Document activation mechanics across Claude Code and cross-tools - Include an orchestration comparison between dirigent and reliquary approaches - Add research on glob negation and flag-file activation patterns - Create uv-detection goals and skill-engines cross-tool reports - Provide a research plan for future porting work and risk notes
5.6 KiB
Brainstorm: should dirigent's documentation skill move to reliquary, and in what shape?
Source
../dirigent/.claude/skills/documentation.md — a flat markdown file (no folder, no frontmatter, no name:/description: header). 237 LOC. Defines a documentation philosophy + templates for CLAUDE.md, README.md, docs/architecture/, docs/api/.
First observation: it's not actually a skill
It's missing a frontmatter block. Claude Code skills need at minimum name: and description: so the runtime knows when to surface them. Without that, this file would never auto-activate — it's effectively a static reference document the user grep'd into manually. If we port it as-is, we'd be porting a doc, not a skill.
So the real question isn't "should we copy it" — it's "what concept inside it deserves to become a real skill, if any?"
What the file actually contains
Three loosely-related things bundled together:
- A philosophy statement — "AI agents first, humans second", CLAUDE.md is lightweight, README is human-friendly,
docs/is deep-dive, cargo doc is API. - A folder structure prescription for monorepo / cargo-workspace Rust projects.
- Four file templates — CLAUDE.md, README.md, architecture doc, API doc.
The philosophy is interesting. The folder structure is dirigent-specific (cargo packages, docs/architecture/, docs/api/). The templates are generic but opinionated.
Where each piece could go
The philosophy → a small skill, maybe
A skill called something like agent-readable-docs could be valuable. It would activate when the user asks to "document this package", "write a README", "add a CLAUDE.md", and would advise:
- Default reader is an LLM agent, not a human.
- CLAUDE.md = short, navigational, 20-50 lines.
- README.md = human-friendly with examples.
- Long-form goes in
docs/. - API specs go in
docs/api/.
This is a real judgment-shape skill, not a template repository. It would compose with workpad (which owns docs/workpad/, not docs/architecture/).
The folder structure → not portable
The cargo-package layout in the file is dirigent-specific. Different projects (Python, Rust app, monorepo, library) want different shapes. Hardcoding "packages/<name>/CLAUDE.md" is wrong for anything that isn't a cargo workspace.
If we want this to be reusable, the skill must say "the user's project already has some layout — adapt" rather than "use this layout."
The templates → reference, not skill
Four templates is a small enough library that it could be a references/ folder inside an agent-readable-docs skill. The skill markdown points at them: "see references/claude-md-template.md for the structure."
Skills shouldn't paste 100 lines of template into their description — but they can host template files alongside and reference them.
Three options, ranked
Option 1 — Adapt as agent-readable-docs skill (recommended)
A new skill in plugins/g4b_ai/skills/agent-readable-docs/:
SKILL.md— the philosophy + when to use which doc type. 60-80 LOC.references/CLAUDE-md.md— template (generic, not cargo-specific).references/README-md.md— template.references/architecture-doc.md— template.references/api-doc.md— template.
Composes with workpad ("workpad is for thinking-about-the-work; this skill is for documenting-the-work-itself"). Stays language-agnostic.
Risk: scope creep. "How to document code" is huge. Keep it tight — this skill is just about which file goes where and what shape, not about content quality.
Option 2 — Leave it in dirigent
It's dirigent-specific (cargo workspace, the project's own docs/architecture/ convention). Ports as a doc, not a skill. If you want to reuse it in dirigent forks, fine — but reliquary's plugins should be more generic.
Option 3 — Don't port, write fresh
The existing file has the right seed of an idea ("agent-readable docs first") but the wrong shape (templates inline, cargo-coupled). If you do port it, you'd rewrite ~80% anyway. Might be cleaner to write the skill fresh, taking only the philosophy paragraph as input.
In practice this is identical to Option 1 in outcome — the difference is whether you frame it as a port or a new skill.
Recommendation
Option 1, with these specific moves:
- Strip cargo-specific examples; replace with language-agnostic phrasing ("source root", not "src/lib.rs").
- Move all four templates into
references/rather than the skill body. - Add a frontmatter
descriptionthat triggers on "document this", "write a README", "add CLAUDE.md", "API docs", "architecture doc". - Cross-reference
workpadexplicitly: workpad is for working about the code; this skill is for docs of the code.
Open question — overlap with workpad?
The workpad skill is very clear that it covers thinking-in-markdown (plans, reports, designs). Docs of the code (CLAUDE.md in a package, README.md, API specs) are deliberately out of workpad's scope — workpad owns docs/workpad/, not all of docs/.
An agent-readable-docs skill fills that gap cleanly. The two compose:
workpad→ where do my plans, reports, journals live?agent-readable-docs→ where does my package's README + agent context + API spec live?
That's a healthy split. Worth doing.
What we'd skip
- The "Maintenance" section in the original (refactor → update CLAUDE files; new feature → update README). That's project-discipline advice, not skill content.
- The "Tips for Agents" section. Self-referential and adds noise.
- The hardcoded label
Type: Library | Binary | UI | Service. Too narrow.