Skip to content

docs(rfc): RFC-AI-0007 — selective (family-scoped) snapshot fetch#908

Open
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:docs/rfc-0007-selective-snapshot
Open

docs(rfc): RFC-AI-0007 — selective (family-scoped) snapshot fetch#908
potiuk wants to merge 1 commit into
apache:mainfrom
potiuk:docs/rfc-0007-selective-snapshot

Conversation

@potiuk

@potiuk potiuk commented Jul 19, 2026

Copy link
Copy Markdown
Member

RFC-AI-0007 — proposes making the non-marketplace (/magpie-setup) adoption fetch only the chosen skill families instead of the whole framework.

The problem

The .apache-magpie/ snapshot today pulls the whole repo — all 10 families, every tool, all of docs/, the projects/ templates — even when an adopter opts into one or two families. Investigation showed skills reference outside skills/ heavily (docs ×319, AGENTS.md ×202, tools ×186, projects ×116), so a naive "chosen skills only" fetch would dangle real runtime dependencies.

The proposal (Phase A — design review)

  • git sparse-checkout + partial clone fetches: chosen families' skills + always-on (setup, utilities) + the runtime closure they execute against (AGENTS.md, PRINCIPLES.md, projects/_template/, invoked tools/).
  • Runtime deps vs doc-links: runtime deps are fetched; the ~319 docs/… prose links are rewritten to canonical github.com/apache/magpie/blob/<ref>/… URLs (deterministic at fetch time). A new runtime_deps: frontmatter, enforced by skill-and-tool-validator, keeps the closure from drifting.
  • Per-family granularity (matches the existing opt-in prompt); per-skill rejected as fragile.
  • Lock gains a families: list so upgrade/verify reproduce the sparse set.
  • svn-zip stays a whole-release fetch (a signed zip can't be sparse); sparse applies to the git methods.
  • No change to the symlink/override model or PRINCIPLES §13.

Process

This is Phase A — the RFC is the review checkpoint. Phase B (wiring setup + install-recipes.md + the lock field + validator) follows on approval, per how RFC-AI-0006 (skill-sources) was staged.

Decisions baked in per request: runtime-only closure, per-family granularity, RFC-first.

Propose fetching only the chosen skill families (plus the always-on setup/
utilities families and their runtime closure) into the .apache-magpie/
snapshot via git sparse-checkout + partial clone, instead of the whole repo.
Documentation cross-links resolve to canonical apache/magpie URLs; runtime
deps (tools, projects/_template, AGENTS.md, PRINCIPLES.md) are fetched and
declared per-skill via runtime_deps frontmatter enforced by the validator.
The lock records chosen families so upgrade/verify reproduce the sparse set.

Phase A (this RFC) is the review checkpoint; Phase B wires setup +
install-recipes on approval. No change to the symlink/override model or
PRINCIPLES §13.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant