Skip to content

docs: add the change-maple-ci skill and align CI docs - #1344

Merged
AnthonyRonning merged 3 commits into
masterfrom
docs/ci-skill
Oct 28, 2026
Merged

AnthonyRonning merged 3 commits into
masterfrom
docs/ci-skill

Conversation

@AnthonyRonning

@AnthonyRonning AnthonyRonning commented Oct 28, 2026 •

Copy link
Copy Markdown
Contributor

Adds the $change-maple-ci skill so a new agent learns Maple's CI in one read before changing, triggering or debugging it. It also brings the existing docs and skills in line with the CI as it works today, after #1315, #1337, #1339, #1341 and #1342.

The skill (.agents/skills/change-maple-ci/)

  • Hard rules, each with its reason:
    • every PR's ci-ok stays well under 10 minutes;
    • master stays deployable;
    • checks are added only as lanes in lanes.py, with a test;
    • no [skip ci];
    • PRs never save caches, and master runs are never cancelled;
    • release and signing workflows and their contracts are off limits;
    • fat LTO stays;
    • OpenSecret is treated as reproducible TEE infrastructure;
    • no new process.
  • How CI works: plan, then the lanes, then ci-ok, plus a table of what a typical PR runs, and what runs on a PR, a master push, nightly and on dispatch.
  • How to trigger things: what each ci:* label adds, re-run semantics (labels are read when plan runs), the dispatch traps, and how to get Agent Dev and other master-only builds.
  • How to change CI: lanes, runners and outage overrides, caches, timeouts, hook wiring, and what each guard test protects.
  • How to validate locally and debug a red or slow run, with exact commands and known failure signatures.
  • Release topics: only a short pointer section. Releases, signing and publication stay in $release-maple.
  • Depth lives in references/: design.md (why it's built this way), changing-ci.md and debugging.md.

Tested on a fresh agent. It read only the skill and answered 18 practical questions, such as "how do I get the Windows installer smoke on my PR?" and "the runner lost communication, what now?". 16 answers were right first time and 2 partly right. The gaps it found are fixed, and every claim was audited against the code.

Docs fixed: AGENTS.md (routes CI work to the skill), docs/ci.md, docs/repository-workflows.md, the Agent docs, the Research Dev desktop doc, proxy/README.md, the OpenSecret EIF docs, and the develop-maple, develop-maple-agent, validate-* and review-opensecret-security skills. The fixes cover stale statements from before the recent CI changes, and duplicated CI text that now points to the skill.

Safe to merge:

  • Docs and skills only, so plan.py explain selects no lane.
  • Merging starts no signed build or deploy. READMEs that are build inputs were left untouched.
  • One caveat for the release owner: four of these docs sit outside the release preflight's reuse list, so merging between a Research version bump and its release would make the preflight ask for fresh evidence.

Left for a follow-up code PR: a few stale comments inside ci.yml, lanes.py, codeql.yml, agent-desktop-build.yml, flake.nix and setup-hooks.sh.

Validation passes: plan.py lint, the scripts/ci suite (514 tests, including the docs-reference contract C7), the root flake checks, and a link check over every changed Markdown file.

🤖 Generated with Claude Code


View with [code]smith Autofix with [code]smith
Need help on this PR? Tag @codesmith-bot with what you need.

AnthonyRonning and others added 3 commits October 28, 2026 07:34
A first read for agents changing, triggering or debugging CI: the hard
rules with their reasons, how plan, lanes and ci-ok fit together, what
runs on PRs, master, nightly and dispatch, the ci:* labels and re-run
semantics, how to add a lane, local validation, common failures, and
the release boundary. References hold the design reasoning, the lane
and guard-test detail, and a debugging guide. lanes.py and
plan.py explain stay the source of truth for volatile lists.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
- docs/ci.md: name the advisory PR workflows, the merge model (no queue,
  no up-to-date rule), master's push lane set, nightly times, dispatch
  limits, Re-run all jobs for labels, explain's limits, local lane
  prerequisites, the 10-minute rule, FlakeHub writes, and one runner
  table that owns lane runners.
- docs/repository-workflows.md: MAPLE_HOOK_NO_NIX, FlakeHub writes from
  same-repository EIF builds, the EIF builder class and fork job, the
  Pages producer pins, and a runner table for the signed workflows; drop
  the duplicated updater-lane definition.
- AGENTS.md: route shared CI to $change-maple-ci and keep the CI rules
  short.
- Fix stale claims: Agent packaging rehearsals are label-only on PRs, the
  macOS archive scan runs on signed master builds, master no longer warms
  the fork EIF cache, Rust SDK and proxy routing for Research, the Windows
  bundle inventory, the store benchmark is not in CI, the provider suite
  runs on three OSes only nightly, proxy container builds on PRs, Research
  Windows PR staging, and os-eif in the OpenSecret skills.
- Replace duplicated lane summaries in component docs and skills with
  pointers, and use just lane repo for the root flake checks.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Keep the docs PR free of build inputs: restore the store-bench and Research
Windows resource READMEs, and the Auth and Research command lines that were
already correct, so merging starts no signed build or Auth deployment.

Skill: typical PR selections, both pr_paths=() and gate=False for slow
lanes, re-run and auto-merge mechanics, failover runners, the
agent-desktop-build dispatch command, hook wiring for existing components,
the merge-base push preview, narrower runner, cache and evidence claims, and
no stale flake rows. Docs: os-eif reports approval need, explain applies the
approval-edit rule, PR cache exceptions, proxy and Rust SDK routing, the
Research Dev re-run advice, and develop-maple routes to change-maple-ci.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@AnthonyRonning
AnthonyRonning merged commit ea02681 into master Oct 28, 2026
19 checks passed
@AnthonyRonning
AnthonyRonning deleted the docs/ci-skill branch October 28, 2026 07:40
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