This can be removed, apologies for the clutter.
Goal
A self-serve framework so that every time maister-copilot is (re)generated, anyone can verify how it behaves on a specific Copilot CLI version/OS — and a compatibility matrix on the wiki stays current, keyed by maister version × Copilot CLI version × OS.
Context: maister-copilot is auto-generated by platforms/copilot-cli/build.sh; live testing on Copilot CLI 1.0.73 (2026-07-22) confirmed it is runnable (see #8). The generator-remediation work adds a committed test harness (WS7) — this ticket proposes turning it into an ongoing, self-updating compatibility framework.
Proposed shape — script-first
Recommendation: a committed script is the core, not a skill/prompt. Rationale: the harness must be deterministic, CI-runnable, and free of model-credit cost for orchestration. The few checks that genuinely need a live agent run (the task/skill delegation and hook-firing) are exercised by tiny fixed prompts the script drives via copilot -p … --log-level debug and parses from the logs. A skill/agent layer for the harness itself would add nondeterminism + credit cost for no benefit.
Components
- Test runner —
platforms/copilot-cli/compat-tests/run-compat-tests.sh (the WS7 harness): loads the freshly-generated plugin via copilot --experimental --plugin-dir and asserts the runtime contracts:
- install/load · skills register with 0 load failures · agents resolve as
maister-copilot:* · a live task(agent_type:"maister-copilot:<agent>") and skill("<name>") delegation execute · SessionStart + PreToolUse hooks fire (incl. ${CLAUDE_PLUGIN_ROOT}) · plugin .mcp.json loads.
- Report —
report-<maister>-<copilot>-<os>-<date>.md (+ machine-readable .json), header capturing maister version (plugin.json/git), Copilot CLI version (copilot --version), OS (uname -sm), date, per-contract PASS/FAIL + evidence. Raw reports optionally committed under compat-tests/reports/.
- Wiki updater —
update-wiki.sh: clones SkillPanel/maister.wiki.git, upserts a row keyed by (Copilot version × OS × maister version) into a Copilot-CLI-Compatibility page, commits + pushes. Token-gated in CI; runnable manually.
- Wiki page — the matrix: rows = (maister × Copilot × OS), columns = the contracts, cells = ✅/❌ with a link to the raw report.
Flow
build maister-copilot → run-compat-tests.sh (drives Copilot, asserts, writes report) → update-wiki.sh (upserts the matrix row) → wiki page current.
Triggers / cadence
On each maister-copilot rebuild (CI), on new Copilot CLI releases, and/or scheduled (e.g. weekly). Always runnable manually.
Open decisions (let's refine together to maximize sense)
- Wiki auth/automation: token in CI to push to
*.wiki.git, vs GitHub API, vs manual-for-now.
- Cadence & triggers: per-rebuild / per-Copilot-release / scheduled.
- Matrix scope: how many historical (maister × Copilot) combos to retain; single page vs per-major-version pages.
- CI policy: should a contract regression fail the build, or only report to the matrix?
- Report retention: commit raw reports in-repo vs wiki-only vs artifacts.
Depends on / relates to
Why separate from the remediation
The harness ships with the fix (build/verify asset). This — the version-matrix + wiki publishing + cadence — is an ongoing maintenance/reporting process with its own lifecycle and infra decisions. Keeping it separate keeps the remediation focused.
This can be removed, apologies for the clutter.
Goal
A self-serve framework so that every time
maister-copilotis (re)generated, anyone can verify how it behaves on a specific Copilot CLI version/OS — and a compatibility matrix on the wiki stays current, keyed by maister version × Copilot CLI version × OS.Context:
maister-copilotis auto-generated byplatforms/copilot-cli/build.sh; live testing on Copilot CLI 1.0.73 (2026-07-22) confirmed it is runnable (see #8). The generator-remediation work adds a committed test harness (WS7) — this ticket proposes turning it into an ongoing, self-updating compatibility framework.Proposed shape — script-first
Recommendation: a committed script is the core, not a skill/prompt. Rationale: the harness must be deterministic, CI-runnable, and free of model-credit cost for orchestration. The few checks that genuinely need a live agent run (the
task/skilldelegation and hook-firing) are exercised by tiny fixed prompts the script drives viacopilot -p … --log-level debugand parses from the logs. A skill/agent layer for the harness itself would add nondeterminism + credit cost for no benefit.Components
platforms/copilot-cli/compat-tests/run-compat-tests.sh(the WS7 harness): loads the freshly-generated plugin viacopilot --experimental --plugin-dirand asserts the runtime contracts:maister-copilot:*· a livetask(agent_type:"maister-copilot:<agent>")andskill("<name>")delegation execute ·SessionStart+PreToolUsehooks fire (incl.${CLAUDE_PLUGIN_ROOT}) · plugin.mcp.jsonloads.report-<maister>-<copilot>-<os>-<date>.md(+ machine-readable.json), header capturing maister version (plugin.json/git), Copilot CLI version (copilot --version), OS (uname -sm), date, per-contract PASS/FAIL + evidence. Raw reports optionally committed undercompat-tests/reports/.update-wiki.sh: clonesSkillPanel/maister.wiki.git, upserts a row keyed by (Copilot version × OS × maister version) into aCopilot-CLI-Compatibilitypage, commits + pushes. Token-gated in CI; runnable manually.Flow
build maister-copilot→run-compat-tests.sh(drives Copilot, asserts, writes report) →update-wiki.sh(upserts the matrix row) → wiki page current.Triggers / cadence
On each
maister-copilotrebuild (CI), on new Copilot CLI releases, and/or scheduled (e.g. weekly). Always runnable manually.Open decisions (let's refine together to maximize sense)
*.wiki.git, vs GitHub API, vs manual-for-now.Depends on / relates to
.maister/tasks/development/2026-07-22-maister-copilot-generator-remediation).Why separate from the remediation
The harness ships with the fix (build/verify asset). This — the version-matrix + wiki publishing + cadence — is an ongoing maintenance/reporting process with its own lifecycle and infra decisions. Keeping it separate keeps the remediation focused.