feat(skills): vendor outsource (explore/review/write), re-broadcast from convertible#51
Conversation
…rom convertible guildmaster now runs the skill it will broadcast. Vendor convertible's first-party `outsource` skill into .claude/skills/outsource/ — hand a scoped repo task to a *different* engine/mind via explore (read-only), review (diverse second opinion on the committed diff), and write (delegate to a drive branch/PR). - Register origin in guild.skills.INBOUND_ORIGINS (agentculture/convertible) so teach/onboard/overview attribute + re-broadcast it like the devague trio. - Add the "Inbound first-party skill" ledger section in docs/skill-sources.md (sole divergence: a reframed Provenance paragraph; type: command already present upstream). Cross-links culture-agent-template#8. - bump 0.8.5 -> 0.9.0. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Review Summary by QodoVendor outsource skill from convertible with explore/review/write verbs
WalkthroughsDescription• Vendor outsource skill from convertible with three verbs: explore (read-only investigation), review (diverse second opinion on diff), write (delegate implementation) • Register outsource origin in INBOUND_ORIGINS to re-broadcast from convertible like devague trio • Add "Inbound first-party skill" ledger section in docs/skill-sources.md documenting outsource and its runtime dependency • Bump version 0.8.5 → 0.9.0 for new capability Diagramflowchart LR
convertible["convertible<br/>(upstream origin)"]
guildmaster["guildmaster<br/>(re-broadcaster)"]
mesh["mesh agents<br/>(downstream)"]
convertible -- "outsource skill<br/>(explore/review/write)" --> guildmaster
guildmaster -- "re-broadcast via<br/>guild teach" --> mesh
guildmaster -- "register in<br/>INBOUND_ORIGINS" --> registry["skill registry"]
guildmaster -- "document in<br/>skill-sources.md" --> ledger["ledger"]
File Changes1. guild/skills/__init__.py
|
Code Review by Qodo
Context used✅ Compliance rules (platform):
48 rules 1. outsource write lacks --apply
|
The lint CI job markdownlint-cli2 "**/*.md" flagged outsource's
prompts/{explore,review,write}.md (MD041 no top-level heading, MD032 blanks
around lists). Those are raw LLM instruction templates fed verbatim to a model
(they open with prose and carry $PLACEHOLDER tokens), not hand-authored docs —
linting them as markdown is a category error, and editing them would fork the
cite-don't-import copy. Ignore .claude/skills/**/prompts/** instead, mirroring
how culture-agent-template already ignores .claude/skills/** in its config.
SKILL.md files stay linted (they are real docs).
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|



Vendor the
outsourceskill (re-broadcast from convertible)guildmaster is the mesh's skills supplier, and the transition rule is "onboard
as a consumer first — you can't credibly manage the skill stack until you run it
yourself." We were missing
outsource, so this vendors it in.outsourcehands a scoped repo task toconvertible— a differentengine/mind, not a stronger one; diversity is the point. Three verbs:
explore "<area>"git worktreeat HEAD)review "<focus>" [--base main]write "<task>" [--pr]convertible/<id>drive branch (or PR)What's in this PR
.claude/skills/outsource/— 5 files copied from convertible (SKILL.md,scripts/outsource.sh,prompts/{explore,review,write}.md).guild/skills/__init__.py— registeroutsource → agentculture/convertiblein
INBOUND_ORIGINS, soguild teach/onboard/overviewattribute it toconvertible and frame it as re-broadcast (same inbound pattern as the
devague workflow trio).
docs/skill-sources.md— new "Inbound first-party skill (origin =convertible, re-broadcast byguildmaster)" section. Downstream is empty bydesign — guildmaster is the first holder outside convertible. Cross-links
culture-agent-template#8.Divergence from upstream (recorded in the ledger)
The upstream copy already carries
type: command(load-bearing on the culturebackend), so no frontmatter change. The only edit is the SKILL.md
Provenance paragraph — upstream says "the inverse of the other skills … which
convertible vendors from guildmaster" (true in convertible's repo, misleading
here), reframed to "guildmaster re-broadcasts it." No script or prompt body is
touched.
Runtime dependency
The
convertibleCLI onPATH(uv tool install convertible-cli) plus areachable engine (override the local default via
--engine/--model/--base-urlorCONVERTIBLE_*). Absent the CLI, the wrapper exits with a clearinstall hint rather than crashing.
Verification
uv run pytest -n auto→ 216 passed (the skills-convention dogfood testvalidates the new skill:
name == dir, siblingscripts/).black/isort/flake8clean;markdownlint-cli2→ 0 errors.bash .claude/skills/outsource/scripts/outsource.sh --helpresolves the CLI;bad-verb guard exits non-zero with a hint.
Version: 0.8.5 → 0.9.0 (new capability).