Adopt Apache Magpie 0.1.0 with project overrides - #241
Open
Aman-Mittal wants to merge 2 commits into
Open
Conversation
Adopts the framework from the signed ASF release rather than a git clone, so the snapshot is verifiable: the SHA-512 matched and the detached signature verified against a key published in the project's own KEYS file. `.apache-magpie.lock` records that hash, so any later re-fetch is checked against the same value. The upstream install recipes are stale on both points — they describe the released-zip method as "not yet available" and name the artefact `-source-release.zip`. 0.1.0 shipped on 2026-08-03 as `apache-magpie-0.1.0-source.zip`. Committed footprint is a lock file, the bootstrap skill and this project's overrides. The framework snapshot stays gitignored and is restored by `/magpie-setup` from the committed pin, so it never enters the repository's history. Nothing runs on its own: no workflow, no schedule, no bot. Vendor-neutral by construction. Skills live in `.agents/skills/`, the canonical path shared by Codex, Cursor, Gemini CLI, Copilot, OpenCode, Cline, Zed and Warp; `.claude/skills/` and `.github/skills/` are relay symlinks into it rather than separate installations. No model vendor or runtime is named anywhere in the overrides, and anything needing a paid subscription belongs in the gitignored `.apache-magpie-local/` so participation never depends on one contributor's account. The overrides carry the project knowledge the generic recipes lack, and their common theme is that a passing check here is weaker evidence than it looks — three separate mechanisms have reported success while testing nothing. So each one asks for evidence that would fail if the claim were false: - pr-management-code-review — the four upgradability axes, that OnPush is already the v22 default and must not be requested, the object-in-a-signal trap, the adapter boundary, and the wire-format rules that fail at runtime and never at compile time (unpadded dates returning 500, blank strings rejected as values, a 200 that means nothing). - workflow-security-audit — ASF Actions policy, and treating build-time-authored runtime config as a credential-routing decision, because allowedApiOrigins entries are offered to users as selectable endpoints. - dependency-audit — the generated client carve-out, the scheduled spec sync as a supply-chain input, and the positional-argument hazard it creates. - issue-triage / good-first-issue-author — label vocabulary, the Business Value requirement, and the self-serve convention that keeps issues unassigned and non-blocking. - pairing-self-review — check the count, not the word. Vendored upstream source is excluded from RAT and Prettier: reformatting it would create diff noise against every framework upgrade.
Apache RAT flagged `.apache-magpie.lock` as an unapproved licence. The lock is a hand-authored project file whose format is `key: value` lines with `#` comments, so it takes a header directly rather than needing a RAT exclusion. `.apache-magpie.local.lock` is excluded instead: it is gitignored and per-machine, so it never reaches CI, but it does turn up in a local RAT run — the excludes already covered the snapshot directory and this completes the pair.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Implements #228.
Adopts Apache Magpie 0.1.0. Nothing runs on its own — no workflow, no schedule, no bot. A maintainer invokes a skill, reviews the output, and decides.
Verified supply chain
Installed from the signed ASF release rather than a
git clone:The signing key is published in the project's own
KEYSfile..apache-magpie.lockrecords the SHA-512, so any later re-fetch is verified against the same value, and a change tourl/ref/sha512is reviewed as a supply-chain change.Committed footprint
.apache-magpie.lock.agents/skills/magpie-setup/.claude/skills/…,.github/skills/…120000), not copies.apache-magpie-overrides/.apache-magpie/The framework never enters the repository's history. Contributors who do not use it are unaffected: no
npmdependency, no build step, nothing to install.Vendor and model neutrality
Structural, not aspirational. Skills live in
.agents/skills/— the canonical path read by Codex, Cursor, Gemini CLI, Copilot, OpenCode, Cline, Zed and Warp — with per-tool directories as relay symlinks into it, so there is no separate installation per tool and no default runtime.No model vendor, provider or runtime is named anywhere in the committed overrides; they are written against capabilities, not any client's tool names or output format. Anything requiring a paid subscription belongs in the gitignored
.apache-magpie-local/, so participation never depends on one contributor's account.The overrides are the substance
Generic recipes would ask for things this project deliberately does not do — explicit
OnPush(already the v22 default), a facade over the generated client (rejected in ADR-0001), assigning issues (committer-only here) — and, more importantly, would trust this repository's own checks.That trust is not warranted. Three separate mechanisms have reported success while testing nothing:
npm run testran 2 specs instead of 775 and exited0; Karma printsTOTAL: n SUCCESSafter a bundle failure; the API drift manifest matched only single-line calls and quietly covered less on each regeneration.So every override asks for evidence that would fail if the claim were false.
pr-management-code-reviewworkflow-security-auditapache/*,github/*,actions/*unreviewed; SHA pins otherwise); untrusted-input paths; build-time-authoredconfig.jsonas a credential-routing decisiondependency-auditissue-triagegood-first-issue-authorpairing-self-reviewConcrete example of what the code-review override catches — all of these compiled cleanly, passed lint and passed the unit suite:
The security override also captures that
allowedApiOriginsentries are offered to users as selectable login endpoints, so whatever they name receives the user's credentials — widening that list is a security change, not configuration.Repository hygiene
scripts/check-license.shpasses.npm run format:checkandnpm run lintclean. No application code is touched, so build and test behaviour is unchanged.Scope enabled
setup+utilities(always on),issue,pr-management,repo-health.Deliberately not enabled:
security(needs a PMC decision — it handles reports before they are public),release-management(this project does not cut releases on that cadence),mentoring/contributor-growth(revisit with steadier newcomer traffic).pairinghas an override ready and can be enabled per-contributor locally.repo-healthis the intended first trial: this repository already runs Apache RAT, licence compliance, dependency integrity,zizmorand CodeQL, so its audits should largely agree with checks already trusted — a low-risk way to confirm the framework behaves sensibly here before leaning on it for triage.