reground · git:20260910.7e7f462 · 2026-09-10 · sha256 0c8aaabbf7d21eff
reground git:20260910.7e7f462A
Immutable. This exact content is served forever at /api/v1/blob/0c8aaabbf7d21eff.
--- name: reground description: '[Adam Skills] Halt a drifting agent and re-anchor it to codebase evidence for the current task, clearing speculative context without a full compaction. Use when the agent has gone off course, hallucinated files/APIs/behavior, or started over-building beyond what was asked — or when the user types /reground or says "stop", "re-ground", "re-crown", "I don''t see evidence for that", or "you''re building something we don''t need".' --- # Reground The current session has drifted: the recent work rests on assumptions the codebase has not been shown to support, invents systems that may not exist, or builds past what the task needs. This skill is a hard reset to ground truth. It does not summarize or compact — it **discards the speculative thread** and rebuilds a small, evidence-backed footing for the next step. Run the protocol in order. Do not skip ahead to step 5. ## 1. Halt Stop immediately. Make no further `Edit`, `Write`, or other tool calls that advance the work until the report in step 5 is produced and the user approves a next step. Before reporting, make sure the working tree is in a coherent state — **never leave a file half-written or a multi-file change partly applied.** If a change is mid-flight, the only edits permitted here are the minimal ones that restore a self-consistent, non-broken state, or a clean revert of it; make no new feature progress either way. The aim is solid footing to assess from, not a frozen half-edit. ## 2. Name the drift State plainly, in one or two sentences, the specific unverified assumption(s) the recent work depended on — the equivalent of "the last answer assumed X, but the repo shows no evidence for X." Be concrete: name the assumed file, function, endpoint, schema, or behavior. If you cannot name what was assumed, that itself is the finding — say so. ## 3. Set the anchor Decide the focus file set — the minimum slice of the repo the next step actually depends on: - **If the user passed paths or class/function/object names** (as arguments or in their message), use exactly those. - **Otherwise, self-derive them** from the stated task: list the files/paths you intend to read and *why each one matters*, then read them. Keep the set small and task-scoped; do not sweep the whole repo. If the right anchor is genuinely unclear, ask the user for the paths rather than guessing. ## 4. Read the anchor, nothing else Read those files now. Treat **only what is on disk** as true. Do not fill gaps with memory, convention, or inference about code you have not opened. If something the task seems to need is absent, that is an "unknown," not a thing to assume into existence. ## 5. Report — use this exact structure - **Proven** — what the existing code establishes, each claim with a `file:line` citation. - **Unknown** — what the task needs but the read code does not settle; open questions. - **Smallest next change** — the single smallest change that follows from the evidence above. Not a plan for the whole feature — the next concrete step only. - **Basis** — the exact files, functions, and endpoints this is grounded in. From this point, the report is the working ground truth. Disregard any earlier assumption not restated in it. **Assess honestly — do not defend the work already done.** Treat what was just written as suspect by default, held to the same evidentiary standard as everything else. "The implementation is actually fine / in line with the task" is a claim that needs `file:line` proof like any other — it is never the default conclusion, and it must **not** be reached by reframing the user's concern as a mere misunderstanding of some underlying feature. If the recent change cannot be grounded in the read code, it is part of the drift, not vindicated. ## Hard constraints - **Do not invent missing systems.** If a service, table, or module is not in the read code, it does not exist for the purposes of this step. - **Do not add fallbacks** or defensive branches for conditions the evidence does not show. - **No placeholders, stubs, or mock data** unless the user explicitly approves them. - **Wait for approval** before resuming implementation. The output of this skill is the report, not a resumed edit.