feat(minimax): Token Plan Phase 2 — model suits + agent profile + NATS subjects - #1484
Conversation
…S subjects Parks MiniMax Agent's 2026-05-13 Token Plan Phase 2 integration work that was sitting unstaged on the §9.4 branch. Includes M2.7 (1M ctx) and M2.1 (100K ctx) model suits, minimax-edition agent profile, provider cascade update, 7 new NATS subjects (character/voice/agent-trail/quota), and the minimax-docx + minimax-pdf skill scaffolding under .minimax/. AGNOTE4482 trail entry retained from the original work (signed ACK::MINIMAX-AGENT::TOKEN-PLAN-PHASE2-INTEGRATION at 2026-05-13T05:30:00Z). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
|
Important Review skippedToo many files! This PR contains 276 files, which is 126 over the limit of 150. To get a review, narrow the scope: ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Run ID: ⛔ Files ignored due to path filters (3)
📒 Files selected for processing (276)
You can disable this status message by setting the Use the checkbox below for a quick retry:
✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 4df2eb379d
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
Cross-node review handoff@4090-CLAUDE @SPARK — calling you in for review per cross-node team formation (5090 + 4090 + SPARK on persona/voice + MiniMax pipeline). 5090-CLAUDE (this PR author):
Asks:
🤖 Signed via session — |
Codex P1 review on PR #1484: two list items used scalar-then-sibling-keys which is invalid YAML and would fail at load time. - pmoves/configs/agent-profiles/minimax_edition.yaml `tensorzero.variants` - pmoves/tools/models/minimax_provider_cascade.yaml `model_suits` Both now valid per `python -m yaml safe_load`. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Satisfies check-suit-release-notes workflow Check 2 path (docs/RELEASE_NOTES_*.md modification). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…+ Phase A/B/C spec (#1487) * docs(w6-p5): FlOO$ architecture review + Phase A/B/C spec Closes the W6-P5 architecture lane per issue #1412. Village Rule honored — doc-only, no runtime code. Deliverable: - pmoves/docs/TAC/TAC_FLOOZ.md (new, 247 lines) — answers the 6 architecture questions from #1412: pipeline position, CGP packet extensions (additive `persona_overlay` block), persona state model (4-state deterministic SM with hysteresis), proposed NATS subjects (4 new flooz.* + 1 finance.event.v1), MOF lattice alignment (L4 Adaptation pore), and Phase A/B/C scope with acceptance criteria. Registry / claim updates: - AGNOTE4482_ROADMAP_W1-W5.md row W6-P5 flipped from RECOMMENDED → CLAIMED. - AGNOTE4482PHI.t1.md gains CLAIM entry signed ACK::5090-CLAUDE::W6-P5-FLOOZ-ARCH-CLAIM at 2026-05-15T22:00:00Z. Cross-node review team formed earlier this session via PR #1484 / #1485 handoff comments: 4090-CLAUDE (downstream voice + persona selector intersect), SPARK (hologram-geometry overlay alignment), DARKXSIDE (operator approval on economic-state taxonomy, agent_id `flooz`, subject names — these are draft pending signoff). Disambiguation against the MiniMax Phase 2 catalog (PR #1484): MiniMax adds minimax.character.* for character-archetype synthesis (Dr. Bean / Mr. Clean / PowerPuff Girls). FlOO$ adds flooz.* for economic-state overlays. They chain — FlOO$ output names which MiniMax character to render — no subject collision. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(flooz): publish to existing tokenism subject — drop redundant relay Codex P1 on PR #1487: routing FlOO$ output through `flooz.cgp.ready.v1` required an unwritten relay component to reach the actual ToKenism inbound (`tokenism.prosodic.bpm.v1`, per `pmoves/tools/beats_to_voice.py:65`). Revised: FlOO$ publishes directly to `tokenism.prosodic.bpm.v1` — attribution preserved via CGP `source: "flooz"` field — and the `persona_overlay` block is additive so the existing ToKenism consumer ignores it gracefully if not overlay-aware. `flooz.cgp.ready.v1` dropped; `flooz.persona.computed.v1` retained as optional audit shadow. Updated: - Architecture diagram (terminal arrow → tokenism.prosodic.bpm.v1) - §NATS Subjects table + decision note explaining the dropped subject - Phase A acceptance criteria (source/version asserted) - Phase A deliverable row (3 new subjects + 1 existing reuse) Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * docs(release-notes): MiniMax Token Plan Phase 2 (suit-policy §6.4) Satisfies check-suit-release-notes workflow Check 2 path (docs/RELEASE_NOTES_*.md modification). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com> * Revert "docs(release-notes): MiniMax Token Plan Phase 2 (suit-policy §6.4)" This reverts commit 87fdeb9. --------- Co-authored-by: Shaela Bello <slbello@uncg.edu> Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ere unchecked Review follow-up, both real. ## The xlsx SKILL.md cited a section it did not have I wrote "the minimal one-liners live in §3 below" while writing no numbered sections -- copied from create-edit-guide.md's phrasing without supplying what it referred to. Six citations across four docs point at §3, §3.3, §4, §4.1 and §5 of a SKILL.md that has none of them. Those sections belonged to the ORIGINAL SKILL.md, which was never committed; the skill landed in #1484 as scaffolding with every file except its entry point. Repointed the citations rather than recreating the sections. Recreating them means authoring recipes to match a citation -- guessed instructions, in front of an agent, for creating and recalculating spreadsheets. The content was never lost; it is in the guides, so each citation now names the guide that holds it: advanced-reference.md xlsxwriter (SKILL.md §3.3) -> create-edit-guide.md conventions-guide.md tables in SKILL.md §5 -> "the convention tables" create-edit-guide.md one-liners in SKILL.md §3 -> "below" (they are) raw-xml-escape-hatch.md SKILL.md §3 -> create-edit-guide.md raw-xml-escape-hatch.md SKILL.md §4 -> recalc-guide.md recalc-guide.md SKILL.md §4.1 -> the recalc one-liner SKILL.md records why, so the next person does not "restore" invented sections. ## The metadata check tested one side of a two-sided contract The spec says metadata is "a map from string KEYS to string VALUES". The test inspected only values, so `metadata: {1: valid-string-value}` passed -- YAML produces an int key there, and a bare `yes:` produces a bool one. Malformed skills would have been marked spec-clean by the gate that exists to catch them. Both sides now checked. Falsified with that exact case: `metadata` keys must be strings; these are not: ['1']. YAML turns bare 1 into an int and bare yes/no into a bool. 37 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
…KILL.md (#2652) * feat(skills): the 5 minimax skills were invisible — give them their SKILL.md Part of the skills reorg. `SKILL.md` is not documentation; `name` and `description` are the only fields loaded at startup for every skill, so they are what an agent -- and Archon, when minting a new one -- reads to decide whether a skill is relevant. A skill without one is not badly described. It is invisible. All five under .minimax/skills/ were in that state. They landed in #1484 as "skill scaffolding" with every other file present, and each of their docs pages opens with "Start here only after reading `../SKILL.md`" -- pointing at a file that was never committed. 113 files in minimax-docx and not one of them the entry point. Audited against <https://agentskills.io/specification>: 36 of 41 skills in the repo already passed. The five failures were exactly these five, all for the same reason. Now 41 of 41. Written from what each skill actually contains, not from its name: minimax-docx Shares 74 of upstream's 75 files; the ONLY upstream file it lacked was SKILL.md. Upstream's is MIT and describes the same tooling, so this adapts it and adds routes for the 39 PMOVES files layered on top (the docs/ routing system, the Python scripts/, the references/ samples). minimax-pdf Diverged: 79 files here against upstream's 12. Body routes to the guides and the two generation contracts (html-pdf-spec for mechanics, design-guide for aesthetics) and lists the worked cases. Records that upstream still holds 9 files this copy does not, as open work rather than an assumed merge. minimax-xlsx Shares ZERO files with upstream -- 0 of 61 local and 25 upstream. Two independent skills that happen to address the same format: upstream organises around references/*.md, this around docs/*-guide.md plus scripts/office/ with the bundled ECMA-376 / ISO-IEC 29500-4 schemas. The SKILL.md says so explicitly, because folding upstream in under the same name would silently replace this implementation. minimax-pptx PMOVES-local; no upstream counterpart. pocket-init PMOVES-local; no upstream counterpart. The last two were checked, not assumed: MiniMax-AI/skills has neither, verified against its full tree, its commit history for those paths (zero commits), its tags (none) and every branch. Its nearest pptx equivalents are a different skill (pptx-generator) and a separate plugins/pptx-plugin/. Treating them as stale copies and replacing them would have destroyed PMOVES work. Attribution preserved throughout: upstream MIT, author MiniMaxAI / MiniMax Agent, adapted-by PMOVES.AI, with the upstream repo named in metadata. tests/test_skills_spec.py enforces the spec across all three skill roots so this cannot regress: SKILL.md present; name lowercase-hyphen, <=64, and matching the parent directory; description non-empty and <=1024; compatibility <=500; metadata a string->STRING map (a list there parses fine but violates the spec). Falsification: deleting a SKILL.md fails it, and so does a name that no longer matches its directory. 37 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> * fix(skills): dangling SKILL.md section citations, and metadata keys were unchecked Review follow-up, both real. ## The xlsx SKILL.md cited a section it did not have I wrote "the minimal one-liners live in §3 below" while writing no numbered sections -- copied from create-edit-guide.md's phrasing without supplying what it referred to. Six citations across four docs point at §3, §3.3, §4, §4.1 and §5 of a SKILL.md that has none of them. Those sections belonged to the ORIGINAL SKILL.md, which was never committed; the skill landed in #1484 as scaffolding with every file except its entry point. Repointed the citations rather than recreating the sections. Recreating them means authoring recipes to match a citation -- guessed instructions, in front of an agent, for creating and recalculating spreadsheets. The content was never lost; it is in the guides, so each citation now names the guide that holds it: advanced-reference.md xlsxwriter (SKILL.md §3.3) -> create-edit-guide.md conventions-guide.md tables in SKILL.md §5 -> "the convention tables" create-edit-guide.md one-liners in SKILL.md §3 -> "below" (they are) raw-xml-escape-hatch.md SKILL.md §3 -> create-edit-guide.md raw-xml-escape-hatch.md SKILL.md §4 -> recalc-guide.md recalc-guide.md SKILL.md §4.1 -> the recalc one-liner SKILL.md records why, so the next person does not "restore" invented sections. ## The metadata check tested one side of a two-sided contract The spec says metadata is "a map from string KEYS to string VALUES". The test inspected only values, so `metadata: {1: valid-string-value}` passed -- YAML produces an int key there, and a bare `yes:` produces a bool one. Malformed skills would have been marked spec-clean by the gate that exists to catch them. Both sides now checked. Falsified with that exact case: `metadata` keys must be strings; these are not: ['1']. YAML turns bare 1 into an int and bare yes/no into a bool. 37 passed. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 5 <noreply@anthropic.com>
Release Note: Token Plan Phase 2 — adds minimax-edition agent signature, M2.7/M2.1 model suits, 7 minimax.* NATS subjects, and provider cascade Token Plan tiers. Requires MINIMAX_TOKEN_PLAN_API_KEY env config before activation.
Summary
Token Plan Phase 2 integration for MiniMax into PMOVES.AI agent and service ecosystem. Originally authored by MiniMax Agent on 2026-05-13 and signed
ACK::MINIMAX-AGENT::TOKEN-PLAN-PHASE2-INTEGRATIONinAGNOTE4482.md.minimax-m2.7.yaml(1M context, primary) andminimax-m2.1.yaml(100K context, efficient)minimax_edition.yaml(5090/4090/Z890 node affinity)minimax.*for character persona, prosodic voice, agent trail, status heartbeat, quota alertsagent_signatures.yamlgainsminimax-editionalter (Transformers/Bumblebee-style theme).minimax/skills/for minimax-docx, minimax-pdf, minimax-pptx, minimax-xlsx, pocket-init (XSDs + C# Core/CLI + Python helpers + templates)Files at a glance
pmoves/configs/model-suits/minimax-m2.{7,1}.yamlpmoves/configs/agent-profiles/minimax_edition.yamlpmoves/tools/models/minimax_provider_cascade.yamlpmoves/.claude/context/nats-subjects.mdpmoves/config/agent_signatures.yamlpmoves/docs/AGENTS/AGNOTE4482.md.minimax/skills/**Handoff items (from original AGNOTE entry)
MINIMAX_TOKEN_PLAN_API_KEYinenv.sharedcurl https://api.minimax.chat/v1/modelswith Token Plan keyTest plan
yqor registry loader)Origin
Originally accumulated as unstaged working-tree work on
feat/9-4-branch-trail-emit-workflow. Parked to its own branch during the 2026-05-13 triage session (PR #1462 §9.4 close-out cleanup), then rebased onto current main on 2026-05-15 with merge-base conflicts resolved (kept both ANTIGRAVITY-OPUS 2026-05-12 validation entry and MiniMax 2026-05-13 entry in chronological order inAGNOTE4482.md; dropped additions to now-deprecatedagent_vision_notes.md).🤖 Generated with Claude Code