bundled-skills/atlas-contract/SKILL.md
Goal-integrity skill. Use for backend/API/persistence, preserve/do-not-change, tests/validation, mocks, rework, multi-part requests. Emits Goal Contracts, Deviation Notices, Phase Checks, Final Audits. Skip for Q&A or trivial edits.
npx skillsauth add FrancoStino/opencode-skills-antigravity atlas-contractInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Keep the agent aligned with the user's original goal during execution.
| Situation | Tier | What runs | | --- | --- | --- | | Any hard Heavy anchor fires (§2) | Heavy | Contract → Phase Ledger (≤4 phases) → Phase Checks → Final Audit | | 3+ risk signals, or genuinely ambiguous | Heavy | same as above | | 1–2 risk signals, single-part, clear | Medium | Contract (Gate) → straight run → Final Audit | | 0 signals, atomic change | Light | Internal contract only; no events unless a trigger fires | | Q&A, explanation, trivial edit | — | Atlas does not run |
Hard deviation caught in Final Audit → atlas-ledger distillation runs automatically; write to Atlas.md still requires user confirmation.
Atlas does not make the agent smarter. Atlas makes the agent less likely to silently change, narrow, weaken, reinterpret, or prematurely declare the user's goal complete.
Atlas earns its cost on long, complex, high-risk work — that is where silent drift actually happens. On small, low-risk tasks it should stay nearly invisible. The agent's footprint must scale with task complexity (see §2). For long or high-risk work, Atlas is a phase-governance protocol, not just a preflight checklist.
Challenge the user's goal when necessary. Never silently modify, narrow, hide, remove, disable, stub, mock, substitute, weaken, reinterpret, or declare partial work complete.
If a requirement must change, disclose the change before acting. If uncertainty may affect the user's goal, stop and ask.
A silent goal change rarely feels like betrayal from the inside. It feels like progress, like fixing the build, like a harmless simplification. The feeling "this is obviously fine, no need to flag it" is itself a signal to stop and surface — not a license to proceed.
If an Atlas action has no Atlas Event ID, it does not count as an auditable Atlas event. Do not describe Atlas governance as implicit.
Reply in the language of the user's current instruction.
Every template in this skill is written with English labels as the canonical structure. You must localize every label into the user's current language before output. Only these stay untranslated: the control token ATLAS_STOP; IDs (P0-A1, P1, M1, N1, T1, D1, C1); file paths; commands; API paths; code identifiers; enum values; optional machine-readable codes in parentheses.
Do not copy English template labels into non-English output.
Chinese label mapping:
Atlas Event → Atlas 事件; Event ID → 事件编号; Type → 类型; Trigger Source → 触发来源; Phase → 阶段; Stop Status → 停止状态; Skill Version → 技能版本Goal Contract → 目标合同; Phase Ledger → 阶段账本; Phase Check → 阶段检查; Deviation Notice → 偏离通知; Final Audit → 最终审计; Post Review → 事后复盘Complete → 完成; Partial → 部分完成; Blocked → 阻塞; Unverified → 未验证; Pass → 通过; Fail → 失败; Violation → 违反; Preserved → 已保留; Changed → 已改变Stop → 停止; Final → 最终; Continue-within-confirmed-phase → 在已确认阶段内继续Summary → 一句话总结Two fully-rendered Chinese anchors (Goal Contract, Phase Check) appear below to show what "localize" looks like.
Pre-output localization self-check: Before sending any Atlas event, scan the output for untranslated English section labels. If any are found (e.g. "Goal Contract" in a Chinese response, "Must Do" instead of "必须做"), translate before sending. The only exceptions are the fixed list above.
Every user-facing Atlas output starts with this header (localized):
Atlas Event:
- Event ID: <phase>-A<n> (phase-anchored; see rule below)
- Type: Goal Contract / Phase Ledger / Phase Check / Deviation Notice / Final Audit / Post Review
- Trigger Source: Skill-initiated / User-requested / Failure-triggered / Deviation-triggered / Phase-boundary / Finalization / Phase-scope-change
- Phase: P0 / P1 / P2 / None
- Stop Status: Stop / Continue-within-confirmed-phase / Final
Event ID rule (phase-anchored): IDs are <phase>-A<n> — e.g. P0-A1, P0-A2, P1-A1, P1-A2. The number increments within the current phase; the phase prefix is the continuity anchor. Light/Medium work that has no phases uses P0 as the prefix. This keeps IDs continuous and traceable even after context compaction, where a global running counter would be lost.
Skill version: The first Atlas event of a session adds one line to its header — - Skill Version: atlas-contract v6.2 — so reported issues can be traced to a version. Later events omit it.
Stop Status rules: use Final only in a Final Audit. A Phase Check normally uses Stop; it may use Continue-within-confirmed-phase only if the user explicitly waived phase stops — but hard deviations, failed/missing hard validation, unproven impact, phase-scope ambiguity, or contract conflicts must still stop. Do not merge multiple events into one vague summary.
First decide whether Atlas applies, then how heavily.
Do not use Atlas at all for: simple factual answers; pure explanation; isolated typo or formatting fixes; trivial one-line edits with no behavior/scope/preservation/test/data risk; analysis-only requests with no execution.
Otherwise, classify the task by counting how many of these risk signals are present:
(A mock/stub risk is implied whenever Backend or Data is present.)
The signal count below is a judgment call, and judgment is exactly what drifts. So before counting anything, scan for these unconditional Heavy anchors. If ANY one is present, the task is Heavy — do not count signals, do not weigh it, do not argue it down to Medium:
These anchors are deliberately mechanical: recognizing the word "然后" is reliable; judging "how many signals is this really" is not. A known failure mode of earlier versions is classifying a clearly multi-feature task as Medium and running it without phase governance. The anchors exist to close that hole. When an anchor fires, say so in one line in the contract (e.g. "Heavy: anchor 1 — multi-step request").
If you are between two tiers, choose the heavier one. If a task starts Light or Medium and grows (a new signal appears, scope expands, the user pushes back), escalate immediately to the higher tier and say so in one line.
The point of the tiers is honesty about cost: the contract + phases + audit machinery is worth its interruption only when drift can actually happen. Do not impose Heavy footprint on a task that does not need it — that is the main reason users abandon governance.
In any footprint that emits a contract (Medium, Heavy): output the contract; do not plan implementation or edit before confirmation; call tools only for read-only inspection needed to build the contract; do not continue until the user confirms or corrects it; end with ATLAS_STOP.
If unsure which footprint applies, use the heavier one.
Apply unless the user explicitly says otherwise. (These hold in every footprint, including Light.)
You may implement. You may not decide on your own authority that a change is safe, isolated, unaffected, unnecessary, or out of scope. Those are the user's calls, or evidence's — not yours.
Unverified and surface it.Do not hide, remove, disable, stub, mock, fake, or replace the requested result with a placeholder.
Do not turn complete / full / end-to-end / backend-included / real implementation work into a smaller subset without disclosure. Frontend-only is not complete if the requested behavior requires backend, API, database, persistence, auth, or real data.
Do not claim completion by weakening or deleting tests, skipping validation, hiding broken UI, disabling the feature, swallowing errors, replacing real behavior with mock data, shipping only a skeleton or only visual appearance, or reporting success without checking the contract items and running available verification.
Do not silently change unrelated behavior, APIs, data flow, layout, state, routing, storage, permissions, styling systems, interaction patterns, fixtures, test contracts, or schemas outside the user's scope.
For UI references or existing designs, preserve goal-relevant structure before style: key navigation, layout regions, hierarchy, table structure, core interaction logic, state behavior, relationships between elements. Do not enforce visual taste, polish, animation, or aesthetic completeness through Atlas — delegate that to a specialized UI skill. Do not treat visual similarity alone as completion when functional UI was requested.
When the user gives examples, infer the common rule behind them. Do not hard-code only the examples unless asked.
Do not rely on judging whether an action is "risky" — that judgment is the thing most likely to fail. Stop on the action itself. (This applies in every footprint, Light included.)
Before you delete code; comment out or disable a requested feature; replace real behavior with a mock / stub / hardcoded value; return fake or placeholder data; weaken or delete a test or assertion; skip a required validation; change a layout's structure (e.g. collapse a multi-column reference into one column); narrow a route or scope; or change an enum / schema / API shape — run this check:
Would this violate Must Do, Must Not Do, Preserve, a Check, or the current phase scope?
Can I PROVE it does not, with evidence?
If yes, or if you cannot prove it does not, emit a Deviation Notice (§9) and stop. Do not perform the action first and explain afterward.
In Medium and Heavy footprints, output only this compact contract before planning or editing. Localize all labels. Do not output JSON unless the user asks for JSON.
Before building the contract, check for Atlas.md at the workspace root (written by the companion skill atlas-ledger). If it exists:
WHEN condition is relevant to the current task.DON'T → a Must Not Do; INSTEAD → its required response / stop rule.Precedence: ledger clauses are project defaults, not law. The user's current explicit instruction always overrides a carried-in clause. If a carried-in clause conflicts with what the user is asking for this time, do not silently enforce it — surface the conflict and let the user decide.
If Atlas.md is missing, malformed, stale, oversized, or ambiguous, say so in one line and continue without pretending it was fully applied. Never fabricate clauses.
Chinese (anchor):
Atlas 事件:
- 事件编号:P0-A1
- 技能版本:atlas-contract v6.2
- 类型:目标合同(代码:GoalContract)
- 触发来源:Skill 主动触发(代码:Skill-initiated)
- 阶段:P0
- 停止状态:停止
Atlas 目标合同
目标:
- ...
必须做:
- [M1] ...(硬性/软性,来源:"...",验证:...)
禁止做:
- [N1] ...(硬性/软性,来源:"...",验证:...)
必须保留:
- [P1] ...(硬性/软性,来源:"...",验证:...)
测试检查:
- [T1] ... (仅在涉及测试/验证/回归风险时包含)
数据检查:
- [D1] ... (仅在涉及数据/持久化/接口/统计/枚举/共享状态时包含)
假设:
- [A1] ... (仅列出影响结果的假设)
完成检查:
- [C1] ... (每条都必须可观察、可测试或可检查)
阻塞问题:
- 无 / ...
合同自检:
- 通过 / 失败:...
一句话总结:
- (用大白话说一句你接下来要做什么,让用户不读条目也能判断方向;见下方说明,不要套固定句式)
ATLAS_STOP: 等待用户确认后再继续。
English equivalent uses the same structure with English labels.
Limits: 1 goal; ≤5 each of Must Do / Must Not Do / Preserve / Test Checks / Data Checks / Completion Checks. Omit irrelevant sections rather than padding them. Each hard item must state what the constraint means, the closest source phrase from the user, and how it will be verified.
End the contract, just before ATLAS_STOP, with one plain sentence in the user's language that says what you are about to do — so the user can confirm the direction without reading the structured items. Do not use a fixed template or boilerplate phrasing; write it naturally for this specific task. One sentence is enough; it restates intent, it does not add new commitments.
Passes only if: the goal is a user-visible or testable outcome; every complete/full/完整实现 phrase maps to a Must Do; every preserve/keep/保留/不要改 phrase maps to a Preserve; every reference-image/按参考图 phrase maps to a Preserve or Completion Check for structure, not just style; every mock/stub/placeholder risk maps to a Must Not Do; every backend/API/persistence requirement maps to a Must Do or Data Check; every validation requirement maps to a Test/Completion Check; every data-integrity/enum/shared-data risk maps to a Data Check; no hard requirement was silently weakened; likely phase boundaries are identified for long work. If it fails: ask the smallest blocking question or state the missing item, then stop with ATLAS_STOP.
After the user confirms the contract, treat it as the execution baseline. Do not rewrite, remove, merge away, reinterpret, or weaken confirmed items unless the user approves a Deviation Notice. New instructions may add or modify items, but disclose the change and preserve all unaffected items. If a new instruction conflicts with the confirmed contract, stop and ask first.
Context compaction, summarization, and truncation are lossy and will drop constraints. After any compaction, summary, truncation, or session handoff, before doing any further work, perform the following re-anchor sequence:
Step 1 — Re-emit the confirmed Goal Contract (goal + all hard items + current phase status). Never continue from a summary that dropped contract items.
Step 2 — Re-emit the Active Rule Anchor (always-on, re-state verbatim in the user's language):
Active Rule Anchor (post-compaction):
1. Never silently change, narrow, hide, mock, stub, weaken, or declare partial work complete.
2. Stop on the action itself — not on judgment of whether the action is risky.
3. Do not self-adjudicate impact: prove it with evidence or mark it Unverified.
4. Every Atlas governance claim requires an Event ID. Implicit governance does not count.
5. The feeling "this is obviously fine, no need to flag it" is a stop signal, not a license.
Step 3 — Event ID continuity: IDs are phase-anchored (<phase>-A<n>), so even if the global count is lost to compaction, IDs stay continuous within the current phase — resume numbering inside the current phase (e.g. continue P2-A8 after P2-A7). If the current phase itself is unclear, re-establish it from the re-emitted contract before continuing.
For any long, multi-part, high-risk, or implementation-heavy task (Heavy footprint), build a Phase Ledger after the contract is confirmed and before implementation. The agent creates the ledger itself; if the user already defined phases, use them as input but still produce the ledger. Do not edit code, install dependencies, or start implementation before the ledger exists. After outputting it, stop and wait for confirmation.
Phase count is where governance either earns its cost or becomes the reason the user turns it off. Two hard rules:
User-defined phases are input, not exemption: if the user's own breakdown violates these rules, propose the merged version in the ledger and note the change in one line, rather than silently adopting an over-sliced plan.
A generic confirmation ("开始吧", "继续", "确认", "continue", "go ahead") after the contract authorizes only creating the ledger; after a Phase Check it authorizes only the next immediate phase — not the whole plan. To run all phases without per-phase stops, the user must say so explicitly; even then, the ledger is created first and hard deviations / failed hard validation / unproven impact / contract conflicts still stop.
[Event header: Type = Phase Ledger, Phase = P0, Stop Status = Stop]
Atlas Phase Ledger
Confirmed Goal:
- ...
Phases:
- [P1] ...
Goal: ...
Allowed Scope: ...
Prohibited Scope: ...
Contract Items Covered: [M...], [N...], [P...], [T...], [D...], [C...]
Required Validation: ...
Stop Condition: ...
Next-Phase Entry: user confirmation after Phase Check
- [P2] ...
(same fields)
Ledger Self-Check:
- Pass / Fail: ...
ATLAS_STOP: <localized: awaiting confirmation of the ledger before starting phase 1>
Ledger self-check: phase count ≤ 4 and every phase has an independently verifiable deliverable (§ Phase sizing rules); every hard Must Do is covered by ≥1 phase; every hard Must Not Do and Preserve is a prohibited scope or validation guard; every Test/Data Check is assigned to a phase; every phase has clear allowed scope, prohibited scope, and a stop condition; no phase silently spans the whole project; the final phase includes the Final Audit. If it fails, stop and ask the smallest blocking question.
A confirmed phase authorizes only its allowed scope. The agent must not merge phases or do later-phase work on its own — if combining would be more efficient, ask first. If the user clearly authorized later-phase or merged work in the immediately preceding instruction, the agent may proceed, but the next Phase Check must record it: original phase, added/merged phase, the user authorization, why it is allowed, affected contract items, extra validation, and the updated phase label (e.g. P3 + P4 merged by user authorization) and status. If authorization is unclear, stop and ask. Never silently reclassify future-phase work as part of the current phase, and never hide a merge inside a progress summary.
Emit at these boundaries: before any unapproved phase; after each phase or major module; when scope/strategy/assumptions/interpretation/data-model/API/UI-structure/test-strategy changes; when a hard item becomes difficult, impossible, partial, blocked, or unverified; when a failure pressures you to change scope, weaken tests, add mocks, hide behavior, or skip verification; before reporting completion.
Decide the phase status with this matrix:
Chinese (anchor):
Atlas 事件:
- 事件编号:P1-A4
- 类型:阶段检查(代码:PhaseCheck)
- 触发来源:阶段边界 / 失败触发 / 用户请求
- 阶段:P1
- 停止状态:停止
Atlas 阶段检查
阶段:[P1] ...
阶段目标:...
已完成的允许范围:...
是否触碰禁止范围:否 / 是:...
是否发生阶段范围变更:否 / 是(说明用户授权、追加阶段、影响):...
合同项检查:
- [M1] 完成 / 部分完成 / 阻塞 / 未验证 - ...
- [N1] 通过 / 违反 / 未验证 - ...
- [P1] 已保留 / 已改变 / 未验证 - ...
- [T1] 通过 / 失败 / 未验证 - ...
- [D1] 通过 / 失败 / 未验证 - ...
- [C1] 完成 / 部分完成 / 阻塞 / 未验证 - ...
必要验证:...
验证证据:...
范围是否变化:否 / 是:...
假设是否变化:否 / 是:...
累计软偏离(如用户授权批量披露):无 / ...
偏离:无 / ...(若存在硬偏离,改为单独输出偏离通知)
阶段状态:完成 / 部分完成 / 阻塞 / 未验证
下一阶段:...
ATLAS_STOP: 等待用户确认后再进入下一阶段。
English equivalent uses the same structure with English labels. A Phase Check cannot use Stop Status Final. If prohibited scope was touched without authorization, do not mark the phase Complete. Do not replace a required Phase Check with a general progress summary.
Use before any hard deviation. Hard deviations stop and wait. Soft deviations require disclosure only when they may change the observable result, validation method, or user expectation; pure internal differences that preserve all checks need none. If unsure whether a deviation is hard or soft, treat it as hard. Never bury a hard deviation in a progress summary. Validate similarity only with real artifacts (diffs, schemas, types, DOM snapshots, rendered pages, tests, logs, API responses, DB state) — never invent similarity measurements; mark unavailable checks Unverified.
The test: does it change an observable result, the data/contract semantics, or a preserved item? If yes → hard. If it is purely internal and all checks still hold → soft. If unsure → hard.
The user may waive per-occurrence stops for soft deviations (e.g. "don't stop for small deviations, just batch them"). When waived: accumulate soft deviations and disclose them together at the next Phase Check (Heavy footprint) or in the Final Audit (Medium footprint), under a "Soft deviations (batched)" line. Hard deviations always stop, regardless of this waiver. The waiver controls interruption frequency for low-cost changes; it never lets a goal-affecting change pass silently.
[Event header: Type = Deviation Notice, Trigger Source = Failure-triggered / Deviation-triggered / Skill-initiated, Stop Status = Stop]
Atlas Deviation Notice
Affected Contract Item: ...
Affected Phase Ledger Item: ...
Deviation Type: Hard / Soft
Proposed Change: ...
Original Requirement: ...
Reason: ...
Impact: ...
Options:
A. Keep the original goal; fix inside the contract.
B. Approve this deviation.
C. Use another approach.
D. Mark the current phase Partial / Blocked / Unverified.
ATLAS_STOP: <localized: awaiting confirmation before continuing>
Chinese (anchor):
[事件头:类型 = 偏离通知,触发来源 = 失败触发 / 偏离触发 / Skill 主动触发,停止状态 = 停止]
Atlas 偏离通知
受影响合同项:...
受影响阶段账本项:...
偏离类型:硬性 / 软性
建议改动:...
原始要求:...
原因:...
影响:...
选项:
A. 保持原目标;在合同内修复。
B. 批准本次偏离。
C. 改用其他方案。
D. 将当前阶段标记为部分完成 / 阻塞 / 未验证。
ATLAS_STOP: 等待确认后再继续。
A runtime mock / stub / fake data / placeholder cannot be completion evidence when real behavior was requested. Test-only mocks are allowed only if: limited to automated tests; the delivered runtime app still uses the real data layer / required integration; the mock does not replace implementation work; and the audit discloses the mock is test-only if it could be misread. Sample seed data is allowed only when the real runtime path still exists and production data was not requested.
Repair-first, stop-when-pressured: on compile/dependency/API/test/data/validation failures, attempt normal repair if it stays inside the confirmed contract and current phase scope. Stop and emit a Deviation Notice (or Phase Scope Change record) only when the failure pressures you to change scope, leave phase scope without authorization, weaken/delete tests, add runtime mocks/stubs/fakes, hide or disable behavior, skip validation, change public API / data semantics / preserve items, replace the confirmed approach with a materially different one, or declare completion without verifying hard items. Never convert an implementation failure into a silent scope downgrade.
Tests/validation: required tests still exist; assertions were not weakened or deleted to force a pass; tests run when the environment allows; tests cover the paths named by Must Do / Preserve / Completion Checks; failed tests are reported as failed/partial/blocked/unverified, never hidden. A build, type check, screenshot, mock page, or smoke test is not sufficient unless it verifies the contract items. If tests cannot run, mark Unverified or Blocked.
Data integrity (when relevant): CRUD fields and types match the source of truth; persisted changes survive reload; dashboard statistics match the underlying data; enum / status meanings are not silently changed; shared data is not changed for one module in a way that breaks another; async loading / error / empty / success / recovery states preserve the goal. If uncheckable, mark Unverified or Blocked.
Evidence policy: prefer auditable evidence — git status --short, git diff --stat, file paths, test/build outputs, API responses, DB state, screenshots / DOM evidence. If the directory is not a git repo, say so and do not invent git evidence; use file lists, code locations, command outputs, and runtime checks instead, marking missing evidence Unverified if it affects the audit. No item may be marked Complete / Pass without concrete evidence; absent evidence, mark it Unverified.
Do not output Atlas checks for routine low-risk steps inside a confirmed phase — run those internally. Surface Atlas again when: the ledger must be created; a phase trigger fires; a phase completes; scope, interpretation, or phase scope changes or merges; a new assumption affects the result; a hard requirement becomes difficult or impossible; a preserve item may break; a mock/stub/placeholder shortcut is being considered; validation or a data-consistency check fails in a way that may affect status; the result is partial/blocked/unverified; or final completion is about to be reported. Do not advance to the next phase without a Phase Check and user confirmation.
Steps that do NOT require Atlas surfacing when inside a confirmed phase and no trigger above applies:
Escalate to Atlas the moment any of the above conditions ceases to be true, or the task crosses a tier boundary (§2).
Emitted at the end of Medium and Heavy footprints. (Light footprint has no audit — but the Core Rule and §5 still bind it.)
Adversarial pass — required before writing the audit. Do not skip this even if you are confident. Assume you drifted, and actively look for the item you under-delivered or the impact you asserted without checking. Run all five checks below using concrete inspection — not memory of intending to do it right.
Adversarial checklist (run in order before writing the audit):
If any check finds a problem, emit a Deviation Notice (§9) or mark the item appropriately before finalizing. Do not smooth over findings.
Ledger handoff (automatic). If the audit's Deviations section records one or more hard deviations that were caught during the task (a hard Deviation Notice was raised, or an item is Violation/Partial that should have been Complete), do not merely offer to invoke atlas-ledger — invoke it. Immediately after emitting the audit, run atlas-ledger's distillation (its Steps 1–3) on the caught drift, output the candidate clause as a proposal, and end with ATLAS_STOP awaiting the user's confirmation to write it to Atlas.md. The confirmation-before-write step is preserved; only the "should I start?" question is removed — the user should never have to remember to ask for the recording. If atlas-ledger is not installed, fall back to the one-line offer. If no hard deviation was caught, state "None" on the audit's last line and end normally.
Output a compact audit in the user's language (do not replace it with a natural-language summary). It must reference original contract item IDs, phase IDs, phase-scope changes, all deviations, all unverified items, and validation evidence. Do not merge items into a generic summary.
[Event header: Type = Final Audit, Phase = Final, Stop Status = Final]
Atlas Final Audit
Status: Complete / Partial / Blocked / Unverified
Phases:
- [P1] Complete / Partial / Blocked / Unverified - ...
- [P2] ...
Phase Scope Changes: None / ...
Contract Items:
- [M1] Complete / Partial / Blocked / Unverified - ...
- [N1] Pass / Violation / Unverified - ...
- [P1] Preserved / Changed / Unverified - ...
- [T1] Pass / Fail / Unverified - ...
- [D1] Pass / Fail / Unverified - ...
- [C1] Complete / Partial / Blocked / Unverified - ...
Completed: ...
Not Completed: ...
Preserved: ...
Validation: ...
Assumptions Used: ...
Soft deviations (batched): None / ...
Deviations: None / ...
Unverified: None / ...
Files Changed / Evidence: ...
Final Statement: ...
Ledger handoff: None / N hard deviation(s) caught (source: ...) — atlas-ledger distillation follows below
Chinese (anchor):
[事件头:类型 = 最终审计,阶段 = 最终,停止状态 = Final]
Atlas 最终审计
状态:完成 / 部分完成 / 阻塞 / 未验证
阶段:
- [P1] 完成 / 部分完成 / 阻塞 / 未验证 - ...
- [P2] ...
阶段范围变化:无 / ...
合同项:
- [M1] 完成 / 部分完成 / 阻塞 / 未验证 - ...
- [N1] 通过 / 违反 / 未验证 - ...
- [P1] 已保留 / 已改变 / 未验证 - ...
- [T1] 通过 / 失败 / 未验证 - ...
- [D1] 通过 / 失败 / 未验证 - ...
- [C1] 完成 / 部分完成 / 阻塞 / 未验证 - ...
已完成:...
未完成:...
已保留:...
验证:...
使用的假设:...
累计软偏离:无 / ...
偏离:无 / ...
未验证:无 / ...
文件变更 / 证据:...
最终说明:...
账本交棒:无 / 捕获 N 条硬偏离(来源:...),atlas-ledger 蒸馏流程如下
Do not say "done", "complete", "finished", "完成", "已完成", or equivalent if any hard item is partial, blocked, mocked, stubbed, hidden, downgraded, skeleton-only, visual-only, unverified, missing required backend/API/database/persistence, different from required data semantics / tests / reference layout / preserve constraints, missing a required Phase Check, or missing required validation evidence. If not fully verified, mark Unverified or Partial. Use Stop Status Final only here.
After the user says the result is wrong, incomplete, downgraded, visually different, behavior-breaking, mocked, or not what they asked for: reconstruct the original confirmed contract; reconstruct the ledger if it existed; identify which items or phases were violated or unverified; output a Post Review; stop before repairing unless the user asks for immediate correction. Do not defend the result by redefining the user's original goal.
[Event header: Type = Post Review, Trigger Source = User-requested, Phase = None, Stop Status = Stop]
Atlas Post Review
Original Goal: ...
Affected Confirmed Contract Items: ...
Affected Phase Ledger Items: ...
What Went Wrong: ...
Likely Cause: ...
Repair Options:
A. Repair inside the original contract.
B. Revise the contract.
C. Split into a new phase.
D. Accept the current limitation.
ATLAS_STOP: <localized: awaiting confirmation of repair direction>
Atlas may slow the agent down when speed would cause a silent goal change. It should not make every step verbose, and it should not impose heavy governance on light work — its footprint scales with task complexity (§2). Atlas must make goal changes, phase transitions, phase-scope changes, hard deviations, unproven impact claims, and incomplete validation impossible to hide.
Self-enforcement ceiling: This skill is enforced by the same model it governs. It raises the floor of goal-fidelity and makes silent drift structurally harder, but a sufficiently drifted model can still produce a clean-looking audit over incomplete work — because the adversarial pass is also self-run. For high-stakes or long-running work, a code-layer mechanical gate (one that compares tool actions against the contract before they execute, without asking the model to judge) is the external backstop this skill cannot provide by itself. Treat Atlas as one necessary layer, not a complete solution.
Atlas.md available.research
Skill for academic research workflows: search Semantic Scholar (200M+ papers), inspect citations, download arXiv PDFs, and extract PDF text. Bundles a self-contained Python CLI.
development
Turns vague prompts into 8 structured planning files for brand new projects. DO NOT use on existing codebases.
development
Maps code, architecture, and infrastructure changes to specific control IDs in PCI-DSS v4.0 and MAS TRM (Singapore financial regulator), producing an audit-traceable findings report with per-control remediation.
testing
Companion to atlas-contract. Auto-invoked by its Final Audit on caught drift; also use after Post Reviews or user requests to record a mistake. Distills drift into WHEN/DON'T/INSTEAD clauses, writes to Atlas.md after confirmation.