Skip to main content

world-state-tracking

Track running state of long task in a single dedicated file that survives compaction. USE WHEN: task is long, agent has lost thread, user asks "where are we" / "到哪了" / "我们到哪了", before `context-pressure-compact`, `todowrite` alone is too thin, agent has done > 10 tool calls, "lost the thread" / "继续" / "忘了". TRIGGER PHRASES: "where are we", "到哪了", "我们到哪了", "继续", "lost thread", "忘了", "lost the thread", "我们刚才说到哪了", "走神了", "回到主线". SKIP WHEN: short task (<5 tool calls), single one-shot question, "do X" with X being small.

Ir para a instalação

Informações da origem

Repositório
MiniMax-AI/MiniMax-Code-Plugins
Última atividade na origem
10 de setembro de 2026 às 01:39
Idioma detectado do SKILL.md
inglês
Estrelas
11
Forks
10

Opções de instalação

Por padrão, está selecionado o prompt que primeiro revisa a origem. Você pode mudar para um comando direto ou baixar uma cópia local.

Revise os arquivos de origem

Leia o SKILL.md e os arquivos complementares exibidos pelo SkillsMP antes de decidir se vai instalar.

Exibindo SKILL.md

SKILL.md
Instruções da origem · Visualização somente leitura
name
world-state-tracking
description
Track running state of long task in a single dedicated file that survives compaction. USE WHEN: task is long, agent has lost thread, user asks "where are we" / "到哪了" / "我们到哪了", before `context-pressure-compact`, `todowrite` alone is too thin, agent has done > 10 tool calls, "lost the thread" / "继续" / "忘了". TRIGGER PHRASES: "where are we", "到哪了", "我们到哪了", "继续", "lost thread", "忘了", "lost the thread", "我们刚才说到哪了", "走神了", "回到主线". SKIP WHEN: short task (<5 tool calls), single one-shot question, "do X" with X being small.
license
Apache-2.0
compatibility
Requires MiniMax Code with Agent Plugins 1.0 support.
metadata
{"author":"antianqi","version":"0.1.1","inspired-by":"https://github.com/openai/codex/blob/main/codex-rs/core/src/context/world_state.rs"}
# World State Tracking Keep a single dedicated state file that records the *shape* of the running task — the goal, the decisions, the blockers, the next step, the key paths. Unlike the conversation history, this file is **structured, finite, and survives compaction**. It is the agent's answer to "where are we?" when the context window is full. ## When to use Activate when **any** of these is true: - The task is long enough that the agent has lost the thread at least once already. - The user asks "where are we?", "what's the status?", "are we still on track?", or "remind me what we decided". - You are about to apply `context-pressure-compact` (the state file is what survives it). - The task has 3+ open decisions whose rationale you don't want to re-derive every turn. - Multiple sub-agents (or the user and the agent) need a shared ground truth. ## When NOT to use - A short task (< 5 turns, no major decisions yet). The state file is overhead. - The whole task fits in a `todowrite`. Use that instead — it is already structured state. - The state would duplicate information that lives in source files (e.g. the migration plan already lives in `docs/migrations/auth.md`; do not restate it here). ## Process 1. **Pick a single, predictable path.** Default: `.minimax/state/<YYYY-MM-DD>-<short-id>.md` (or, for repos without a working dir, a tmp file under `/tmp/`). The path is part of the contract — re-read it from the same place every turn. 2. **Initialise the file the first time you activate this Skill.** Use this exact shape: ```markdown # World State — <short task name> **Started**: <ISO date> **Owner**: <agent name or "main"> **Last updated**: <ISO timestamp> ## Goal <one paragraph, in the user's own words, copied from the original request> ## Current phase <one of: scoping | planning | executing | verifying | blocked | done> ## Decisions (with one-line rationale) - <decision> — <reason> - <decision> — <reason> ## Done - [x] <step + result + key file path or identifier> - [x] <...> ## In progress - [ ] <step + where you stopped + the next concrete sub-step> ## Blockers / open questions - <question that, if answered, would unblock the next step> ## Next concrete step <one verb-first sentence — "Edit X to add Y", "Run Z and report output", etc.> ## Key file paths - /abs/path/that/the/next/turn/will/need ``` 3. **Update the file at every meaningful boundary**, not every turn. Boundaries are: - End of a `todowrite` step. - End of a sub-task handed to a `task` call. - Right before a `context-pressure-compact`. - Immediately after a user redirection. At each update: bump `Last updated`, move items between Done / In progress, add new Decisions, and refresh the Next concrete step. 4. **On every new turn, read the file first** (use `read`). It is your 30-line ground truth. Do not skim the conversation history to "get back up to speed" — read the state file. 5. **At `context-pressure-compact` time**, the state file is what survives — the noisy middle does not. The compact summary should reference the state file by path, not duplicate its contents. ## Output contract The user sees: - The path to the state file (one line, at the top of any meaningful response). - On request: a short, *complete* snapshot of the state (the file contents, optionally abbreviated). - On update: a one-line "State updated: <new Last updated>". ## Example ```markdown # World State — Auth refactor (OIDC alongside SAML) **Started**: 2026-08-23 **Owner**: main **Last updated**: 2026-08-23T23:55:00Z ## Goal Refactor the auth subsystem to support OIDC as a first-class provider alongside the existing SAML path, without breaking any of the 12 existing SAML tests. ## Current phase planning ## Decisions (with one-line rationale) - Keep SAML on the legacy code path; OIDC gets a parallel module. — SAML contract is frozen, no test budget to re-validate. - Reject "generic Provider with config-driven dispatch" — too much config surface for marginal benefit. - Use the `openidconnect` crate (not hand-rolled oauth2). — JWKS, PKCE, state, nonce all solved; saves ~400 lines. ## Done - [x] Mapped current auth flow in `src/auth/`. Wrote findings to `.minimax/snapshots/auth-flow.md`. - [x] Confirmed test coverage: 12 of 14 files have unit tests (2 missing: `logout`, `session`). ## In progress - [ ] Drafting the `OidcProvider` trait. Stopped at: how to represent the provider enum vs the existing `IdP` interface. Three options on the table; see Open questions. ## Blockers / open questions - Should the OIDC module own token storage, or reuse the existing session store? - Does IT have a preferred OIDC library? (defaulting to `openidconnect`) ## Next concrete step Draft the `OidcProvider` trait + one impl for `provider = "okta"`, then show the diff to the user before touching `src/auth/callback.rs`. ## Key file paths - /repo/src/auth/idp.rs - /repo/src/auth/callback.rs - /repo/tests/auth/ - /repo/docs/auth.md ``` ## Common pitfalls - **Do not put prose in the state file.** Prose is what the conversation history is for. The state file is structured, finite, and machine-grepable. - **Do not update on every turn.** Update at boundaries. A state file that changes every line is just a noisy transcript. - **Do not duplicate source-of-truth info.** If the API contract lives in `docs/api.md`, the state file says "see docs/api.md", not "the API contract is ...". - **Do not let the state file grow unbounded.** A 500-line state file is no longer a state file; it is a journal. If it grows past ~80 lines, split it (e.g. `state.md` + `decisions.md`) or compact. - **Do not forget the path.** If you can name the path from memory every turn, the state file is doing its job. If you cannot, move it to a more obvious place. - **Do not use the state file as a substitute for `todowrite`.** The state file is the long-form ground truth; `todowrite` is the short-form live checklist. They coexist. ## Verification checklist - [ ] Is the state file at a single, predictable path the agent can name from memory? - [ ] Is it initialised with the full 9-section shape on first activation? - [ ] Is it updated at boundaries (steps, sub-tasks, compactions, redirections), not every turn? - [ ] Does every new turn start with `read` of the state file, not a conversation skim? - [ ] Is the state file < ~80 lines? If not, split or compact. - [ ] Does `context-pressure-compact` reference the state file by path, not duplicate it? - [ ] Can a new sub-agent orient itself in < 30 seconds by reading only the state file?
Ver no GitHub