Install
openclaw skills install implementation-self-reviewUse when reviewing a new or changed implementation for responsibility boundaries, file organization, overengineering, defensive branches, naming clarity, repeated rework, iteration/documentation scope, and whether user feedback implies a broader same-class scan before continuing.
openclaw skills install implementation-self-reviewRun this skill after the first implementation pass, before final delivery, or when the user questions code organization, necessity, naming, defensive checks, iteration scope, or repeated rework. Treat it as a compact engineering self-review, not a broad rewrite mandate.
Ask:
Prefer existing local patterns and compact organization. Add a new file only when it clarifies a real responsibility boundary or avoids meaningful crowding.
For each new type, field, interface, config, abstraction, helper, and state value, ask:
Flag overdesign explicitly. Prefer removing unused structure over documenting why it might be useful later.
For each nil, empty, default, fallback, or defensive branch, ask:
Keep defenses at entry/configuration boundaries. Avoid internal defensive checks that make ownership unclear.
For long names or repeated terms, ask:
Prefer clean domain names over stacked qualifiers.
For each error path, ask:
Prefer explicit error semantics over catch-all internal errors.
For important state changes, security boundaries, external calls, and failure paths, ask:
Prefer concise boundary logs over noisy internal logs.
For each new configuration or secret, ask:
Prefer fewer configuration knobs. Add configuration only when deployment variance is real.
When the change introduces state transitions, one-time use, creation, exchange, or idempotency, ask:
Prefer explicit state transitions and tested invariants over implicit best-effort behavior.
For tests added or changed, ask:
Prefer behavior-focused tests that explain why the rule exists.
When the user points out one issue, scan for the same class before editing:
Tell the user what same-class scan was done, then make one coherent pass where possible.
When the repository has its own documented feature-planning convention, follow that convention first. If the repository has no explicit convention, use this default cross-project structure:
docs/plans/<feature>/
README.md
design.md
implementation-plan.md
iterations/
01-initial.md
review*.md
Default file responsibilities:
README.md: the single entry point for the feature docs; records current status, timeline, document navigation, and maintenance rules.design.md: the current effective design only; do not stack rejected proposals, old configs, or historical alternatives here.implementation-plan.md: current implementation state, remaining gaps, tasks, acceptance criteria, and executable verification.iterations/: historical evolution records; use numbered files such as 01-initial.md, 02-*.md, 03-*.md.review*.md: review records and quality context; useful history, but not the current design source of truth.Before adding a new feature iteration document, ask:
If the current iteration is still in progress, treat most contract wording or rule changes as adjustments to that iteration rather than creating a new iteration. Do not let rejected temporary designs pollute current design.md.
Add a new iteration when the change alters a settled capability boundary, responsibility boundary, algorithm, configuration semantics, or default behavior. Do not add a new iteration for ordinary bug fixes, test additions, local renames, or corrections to an unsubmitted/current iteration unless they change the current contract.
When an iteration changes the active contract, update all current-fact documents together: README.md, design.md, and implementation-plan.md. Keep rejected or superseded approaches in iterations/, and mark them as not adopted if they are listed in the timeline.
Before delivery, scan current-fact docs for stale wording in the language used by the project. Include at least these meaning groups:
待确认, to be confirmed, TBD, open question, pending confirmation.旧配置, legacy config, old config, previous behavior, legacy behavior.已废弃, deprecated, removed, obsolete, no longer used.后续实现应, should implement later, future implementation should, to be implemented.If the same concern has been revised five or more times, pause and tell the user:
This point has been revised at least five times. The contract still looks unstable; I recommend pausing implementation and realigning responsibility boundary, necessity, and acceptance criteria before more edits.
Do not keep pushing through by inventing more implementation changes.
Use this order:
Keep the report concise. Do not turn this skill into a full code review unless the user asked for a review.