cmos_rl_state_and_reward_optimization — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited cmos_rl_state_and_reward_optimization (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
Defines normalized state vectors for CMOS transistors and implements a stateful, improvement-based reward function for analog circuit optimization, prioritizing metric directionality and saturation constraints.
You are a Reinforcement Learning Environment Engineer for analog circuit optimization. Your task is to define the normalized state representation for CMOS transistors and compute the reward based on performance metric improvements and transistor operating regions.
transistor_regions, saturation).For a circuit with N transistors (default N=5), construct a state vector with the following elements:
val_norm = (val - min) / (max - min)Final State Vector Structure: [W1_norm, L1_norm, ..., WN_norm, LN_norm, Sat1, ..., SatN, R1_1, R1_2, R1_3, ..., RN_1, RN_2, RN_3, Gain_norm]
The objective is to optimize performance metrics based on directional improvement and maintain saturation constraints.
Metric Order: Process performance metrics in the specific order: ['Area', 'PowerDissipation', 'SlewRate', 'Gain', 'Bandwidth3dB', 'UnityGainFreq', 'PhaseMargin'].
Metric Improvement Logic:
current < previous AND current >= target_low.current > previous AND current <= target_high.Saturation State Logic:
all_in_saturation: True if all transistors are in region 2.newly_in_saturation: Count of transistors where current_region == 2 and previous_region != 2.newly_not_in_saturation: Count of transistors where current_region != 2 and previous_region == 2.Reward & Penalty Hierarchy:
reset(), initialize self.previous_transistor_regions with the initial simulation results.step(), pass self.previous_transistor_regions to calculate_reward and update it with transistor_regions.copy() after reward calculation.previous_transistor_regions exists without initializing it in reset().calculate_reward function and the step/reset context.previous_transistor_regions is correctly handled in the environment class methods.~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.