Skip to content

MIP-0080 tasks

Ordered delivery of MIP-0080 as one PR per repo (/marola-devkit:mip-tasks, stack). Branch mip-0080/<k>-<slug> in the repo the row lands in. Each row's delivers cell starts with the repo its PR lands in (MIP-0070's spelling, read by tasks-to-issues). §n are the MIP's. Rows 1 and 2 are a devkit release; rows 3–5 take it with a devkit bump, which moves the flake input, every @v…/devkit-ref: in .github/workflows/ and the marketplace ref in .claude/settings.json together. Row 6 is independent of the others. Issues are filed by a human (MIP-0063 §5.6); the rows are numbered until then.

# slug delivers tests (must exist before the PR) depends on
1 skills-vendor marola-devkit — §5.2: scripts/skills-vendor.py (stdlib), on PATH as skills-vendor, with skills-check, skills-outdated and skills-update *args recipes in devkit.just; plugins/marola-devkit/skills/skills.lock (§5.1, four rows, commit: null); skills-check in the devkit's just quality; docs/4-reference_tools.md row; sharingan step 1 ends with skills-update --init skills-vendor --self-test (in tests/self-tests.sh) with the MIP's §7 names: check_* (4), init_writes_null_commit_and_changes_no_bytes, update_* (5), outdated_* (3), lock_found_from_subdirectory. nix flake check. just skills-check green in the devkit –
2 skills-update-workflow marola-devkit — §5.3: reusable .github/workflows/skills-update.yml (14-day cooldown, hold skipped, one PR on chore/skills-update, label skills-update, SKILL.md diff per skill in the body); skills-update in labels.yml; docs/4-reference_workflows.md row; CHANGELOG.md entry and the flake's version; human: tag the next minor actionlint. A workflow_dispatch run from a scratch branch with one row's commit 30 days back opens a PR with that skill's diff only (run and PR links in the PR) 1
3 site-lock marola-site — devkit bumped to row 2's tag; .claude/skills/skills.lock (14 rows, commit: null, licences from the files beside each skill); skills-check in just quality; skills-update.yml caller on the weekly cron and workflow_dispatch; AGENTS.md's vendored-skills sentence names the lock just quality green; skills-check red on a test branch that edits one vendored SKILL.md (run link) 2
4 umbrella-lock marola — devkit bumped to row 2's tag; .claude/skills/skills.lock (citation-cff); skills-check in quality-other; the caller workflow; one line in docs/3-Ways-of-working/AGENT-SKILLS.md §1 just quality green; skills-check red on a test branch that edits citation-cff/SKILL.md 2
5 ww3-lock h0ffmann/ww3-gpu — devkit bumped; .claude/skills/skills.lock (four rows, each with local_edits pointing at a .patch holding the audience paragraph); skills-check in its quality recipe; the caller workflow skills-check green; skills-update humanizer --sha <current> reapplies the patch and leaves no diff 2
6 refresh-reads-locks marola-dev/marola-skills — §5.4 step 3: refresh.py reads skills.lock from each watched own repo, takes upstream/path/commit from it and compares every locked file; name matching stays the fallback; the index shows "pinned at / upstream at" refresh.py --self-test adds upstream_from_lock and name_match_fallback_without_lock –
7 first-pins marola-devkit, marola-site, marola, h0ffmann/ww3-gpu — one just skills-update <name> per row, reviewed by hand, which writes the first real commit values and closes marola-dev/marola-devkit#39 and #40 through the tool skills-check green after each; skills-outdated reports every row as up to date or held 3, 4, 5
8 mip-implemented marola — MIP-0080 flipped to Implemented with every PR number mip_graph.py --check 6, 7