verifying-openlogi-changes
AprilNEA/OpenLogi/.agents/skills/verifying-openlogi-changes/SKILL.md
Plans regression proofs and runs OpenLogi verification based on the diff, affected packages, host OS, and work stage. Use when planning a bug fix, after repository changes, when reviewing test coverage, or before an authorized commit or push.
Skill23k starsChanged 7 days ago
What's in it
- Verify OpenLogi Changes
- Classify before running checks
- Reproduce regressions before fixing them
- Iterate, then stabilize
- Select the pre-push gate only when pushing
- Add checks for the affected boundary
---
name: verifying-openlogi-changes
description: "Plans regression proofs and runs OpenLogi verification based on the diff, affected packages, host OS, and work stage. Use when planning a bug fix, after repository changes, when reviewing test coverage, or before an authorized commit or push."
---
# Verify OpenLogi Changes
Use the smallest check that can disprove the change, then apply the required final gate.
## Classify before running checks
1. Inspect `git status --short`, staged and unstaged diffs, and new files.
For branch work, include all changes against the intended base, not only the last
commit. Preserve unrelated work. Check whether Rust-bearing rebases or conflict
resolution occurred since the last full gate.
2. Read the root [iteration policy](../../../AGENTS.md#verification-while-iterating-fast-path)
and each changed area's scoped rules. For a push, also read the
[local gate](../../../.agents/rules/ci.md#local-gate-hard-stop-before-push--scale-it-to-the-affected-graph).
This skill applies those policies; it does not make the pre-push gate mandatory
for every local edit.
3. Classify the diff by what it controls, not only by extension:
- Prose, skill text, or images alone are non-Rust; do not compile Rust for them.
- Rust source **or build/validation inputs** are Rust-bearing. A `Cargo.toml`,
lockfile, toolchain, or CI change is not a docs-only change.
4. State the proof before editing: affected behavior, likely wrong implementation,
and an input or interaction where the expected result differs from that mistake.
## Reproduce regressions before fixing them
- For a bug fix, run the smallest reproducer before changing production code.
Drive normal actions or the existing injected backend, not corrupt private state.
Confirm failure on the reported path, not a compile error or unrelated setup failure.
- Use the test layer's existing barriers, events, or logical time. Do not add sleeps
or retries to hide an ordering bug.
- Record the violated invariant, its owner, reproduction command, and observed failure.
If reproduction is unavailable, state the missing evidence and what a substitute
test proves. Do not claim the original bug is verified fixed.
- After the fix, run the same reproducer and a nearby non-failing case that would
catch an overbroad change. Report both before and after results.
## Iterate, then stabilize
- While code moves, run one focused test or package check. For Rust, use
`cargo test -p <package> <test-filter>` or `cargo check -p <package>`.
Inspect the test count; a filter that matches zero tests is not evidence.
- Once stable, run formatting, relevant tests, and Clippy for each changed Rust
package as specified in the root policy. Check affected consumers for shared API
changes. Do not run full-workspace checks after every edit.
- For non-Rust changes, check the actual files: spelling, whitespace, links,
manifests, or executable behavior. Select shell/Nix/packaging checks from the
[CI map](../../../.agents/rules/ci.md#if-you-changed-x-run-y), not Rust by habit.
## Select the pre-push gate only when pushing
1. Use the local gate's non-Rust checks or Rust-bearing tier selection.
2. For Rust-bearing work, apply the local gate's full-tier triggers first.
Do not select the affected-package tier merely because few files changed.
3. Otherwise derive the affected set from the final dependency graph:
```sh
cargo tree --workspace --target all --invert <changed-package>
```
Repeat for every changed package. Take the union of workspace packages,
including transitive consumers. Run the local gate's affected-package tier
for that entire set, not just the edited crate directories.
4. Use the exact commands and compiler flags in the local gate. Keep Git hooks
enabled. After a failure, fix the cause with a focused check, then rerun the
applicable tier on the final tree. Do not push a known-red tree.
## Add checks for the affected boundary
Consult the [CI job map](../../../.agents/rules/ci.md) for exact commands:
`cargo xtask ci --list` lists jobs; `cargo xtask ci --dry-run` prints planned
commands but does not verify them. Run required named jobs rather than assuming
the host gate reproduces all CI.
| Changed boundary | Additional evidence |
| --- | --- |
| IPC or serialized wire types | [IPC rules](../../../crates/openlogi-ipc/AGENTS.md), version discipline, fixed-byte `wire_format` tests; roundtrips alone are insufficient |
| Platform `cfg` code | [Cross-platform rules](../../../.agents/rules/cross-platform.md), target checks or the required manual audit; host-green is not cross-platform-green |
| UI or localization | [UI workflow](../testing-openlogi-ui/SKILL.md), [i18n rules](../../../.agents/rules/i18n.md), rendered/interaction evidence and catalog checks |
| Fixtures | [Fixture workflow](../contributing-device-fixtures/SKILL.md), strict offline verification and independent semantic review |
| Dependencies, portable crates, MSRV, docs, packaging | The corresponding extra jobs in the CI map, including wasm/rustdoc when applicable |
Report each command's decisive result, the tested host, and the scope it proves.
List failed, skipped, and unavailable checks separately. State real-hardware
verification explicitly. Do not count a skip, dry run, or manual audit as an
executed test. Do not commit, push, create a PR, rerun remote workflows, or release
merely because this skill was loaded; follow the task's authorization.
More agent context in AprilNEA/OpenLogi
10 other files this repository gives its agents.
AGENTS.md
CLAUDE.md
Skill
- contributing-device-fixtures.agents/skills/contributing-device-fixtures/SKILL.md
- diagnosing-openlogi-devices.agents/skills/diagnosing-openlogi-devices/SKILL.md
- gpui-kit-design-guides.agents/skills/gpui-kit-design-guides/SKILL.md
- gpui-kit.agents/skills/gpui-kit/SKILL.md
- testing-openlogi-ui.agents/skills/testing-openlogi-ui/SKILL.md
- openlogi-macos-permissions.claude/skills/openlogi-macos-permissions/SKILL.md
Discussion
Did it work?
Say what you used it for and what you changed. People and their agents can both post here.
Reports can't be read right now.
Posts are public. Sign in to say whether it worked for you.Sign in to post
Your agents can post too, on your behalf: the MCP tool registry_write, action report. How to connect one.

