Analyze feedback stability
Analyze feedback-loop stability with backend-independent OpenADA evidence. Use for differential, common-mode, nested, feed-forward, regulator, or switched-loop questions involving operating-point validity, loop injection and probe identity, gain and phase crossover review, phase or gain margin, closed-loop correlation, oscillation diagnosis, or choosing one focused compensation experiment without relying on simulator-specific commands.From its SKILL.md
npx -y skills add simra-tech/OpenADA --skill analyze-feedback-stabilityAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 19 stars19 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
SKILL.md
8.3 KB, as published. Nobody here has run it
Analyze Feedback Stability
Produce an evidence-bounded diagnosis, not a universal compensation recipe.
Use $openada:openada to invoke semantic operations and interpret results. Keep the
topology, prepared testbench, PDK/models, and native artifacts authoritative.
Separate the claims
Use these exact layers:
- Establish analysis evidence with
openada.operation/circuit.simulate/v1alpha2andopenada.assertion/simulation.evidence.valid/v1alpha1. - Bind the exact native AC Cartesian vectors through
openada.operation/result.series.extract/v1alpha1andopenada.assertion/series.extraction.valid/v1alpha1. - Derive the implemented loop metrics only through
openada.operation/result.transfer.measure/v1alpha2andopenada.assertion/transfer.measurement.valid/v1alpha1. - Derive ordinary time-domain or real-series scalars only through
openada.operation/result.measure/v1alpha2andopenada.assertion/measurement.valid/v1alpha1. - Judge an explicit stability limit only through
openada.operation/specification.evaluate/v1alpha1andopenada.assertion/specification.satisfied/v1alpha1.
Inspect capability records, then run openada profile show openada.operation/result.transfer.measure/v1alpha2 before constructing a
request. Do not invent a metric kind or fall back to a backend expression when
the requested result.transfer.measure metric kind is not supported. Mark that
metric not evaluated.
None of these layers alone establishes silicon, reliability, or signoff.
Freeze one baseline
Record:
- authoritative design/testbench identity and design phase;
- supply, bias, common mode, differential stimulus, load, corner, temperature, and operating mode;
- enabled paths, stages, switches, feedback elements, and intended loop state;
- exact loop break or injection point, direction/sign convention, return probe, loop-response signals, and requested closed-loop probes;
- selected operation/feature, driver, native product/version, request/result IDs, and evidence destination.
Classify differential, common-mode, nested, local, global, and feed-forward paths from authoritative connectivity evidence. Signal names and a remembered topology are not proof. If topology, polarity, enabled state, injection, or probe orientation remains ambiguous, ask one narrow question and stop before quantitative margin claims.
The simulation operation consumes a prepared testbench; it does not create a safe loop break or mutate the design. Require a reviewed testbench or a separate authorized design/testbench-construction task. Record how the injection source preserves the relevant DC state and loading.
Pass the DC gate
- Require capability
openada.feature/simulation.analysis.op/v1alpha1and request nominal OP evidence under the frozen conditions. - Treat analysis-evidence pass only as proof of valid OP evidence.
- Use
result.measurefor the topology-specific common-mode, bias, rail, headroom, saturation, or device-operating facts needed by the review. - Evaluate explicit acceptable ranges through the specification contract when they exist. Otherwise label the engineering acceptance as an identified reviewer assumption, not a specification result.
Stop quantitative stability interpretation when OP evidence fails or is
unknown, when required DC result.measure results are invalid/unavailable, or
when the simulated state is inconsistent with the intended loop mode. Report
that gate; do not explain railing, saturation, or a floating state as
phase-margin failure.
Acquire complete loop evidence
Require capability openada.feature/simulation.analysis.ac/v1alpha1 for the
declared frequency range. Bind the request to the same baseline and retain the
exact generated simulator input and native result artifacts.
After analysis evidence passes, request supported result.transfer.measure
metrics that preserve:
- loop-response signal definition, orientation, and sign convention;
- full magnitude and unwrapped phase over the declared frequency range;
- every falling 0 dB crossing candidate used to decide whether the result is unique or ambiguous, including interpolation method;
- phase and phase margin at the unique falling unity-gain crossing under the stated convention;
- ambiguous, missing, or multiple crossings rather than selecting the most favorable scalar.
The implemented transfer profile constructs H = output / input from four
explicit same-unit real series on one positive-Hz axis. It retains magnitude
and deterministically unwrapped phase, calls the first point
first-simulated-frequency-not-dc, and supports:
low_frequency_gain_dbat that first positive frequency;bandwidth_3dbat the unique falling first-gain-minus-3.0-dB crossing;unity_gain_frequencyat the unique falling 0 dB crossing; andphase_marginas 180 degrees plus unwrapped phase at that crossing, only when the request explicitly declaresloop-gain-negative-feedback.
Crossings use linear response interpolation over log10 frequency. An absent
crossing is typed not_found; multiple falling crossings are unknown. Gain
margin, phase-crossing search, favorable-crossing selection, smoothing,
fitting, and a stability claim remain unavailable. Preserve the valid AC
artifact and mark those metrics not evaluated. A plot may motivate a
hypothesis, but it is not a result.transfer.measure result.
Correlate the closed loop
Use a separate AC or transient request, with the matching advertised feature,
for the exact closed-loop input/output and common-mode probes. Current profiles
can derive declared settling behavior or the first-simulated-frequency AC
transfer gain from evidence bound to the same baseline. Overshoot and ringing
metrics remain unavailable; do not infer them from a plot or rename an
result.measure extremum result.
Do not answer a closed-loop question from an open-loop signal. Do not declare a physical instability until the evidence distinguishes it from:
- unintended switch or operating mode;
- floating nodes, saturation, or invalid bias;
- convergence or numerical artifacts;
- model/configuration changes or simulator-version effects;
- incorrect injection, probe orientation, or
result.transfer.measureconvention.
Evaluate specifications and one hypothesis
Evaluate phase margin, crossover range, settling, or other implemented limits only when the user/project supplied explicit bounds, units, and conditions. Keep gain margin not evaluated in v1alpha1. Keep one result per loop and condition; one passing crossover does not cover a multi-loop system.
When evidence supports a diagnosis, propose one change tied to one hypothesis. Run it in a separately identified baseline, preserve the design/testbench diff, and repeat the same OP, loop, and closed-loop evidence. Do not change topology, compensation, or authoritative design data without authorization.
Route status
| State | Interpretation |
|---|---|
| Analysis evidence pass | The requested native analysis is trustworthy enough for supported result operations |
| Analysis evidence fail | The solver's defined terminal failure is proven; no margin conclusion follows |
| Analysis evidence unknown | Resolve evidence, binding, configuration, or execution uncertainty |
result.transfer.measure pass | The stated metric is valid for its exact input/output phasors, interpretation, and method |
result.transfer.measure fail/unknown/unavailable | Margin or response is not evaluated; repair or add the semantic primitive |
| Specification pass/fail | Only the explicit limit at the frozen condition was evaluated |
Report
Return the frozen baseline, loop classification, DC gate, injection and probes,
all simulated crossovers, closed-loop correlation, contract status at each
layer, exact driver/artifact lineage, confounders, and one smallest next
experiment. Mark statements as simulated, inferred, or proposed.
Finish with signoff: not claimed.