debug-issue — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited debug-issue (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.
Systematic debugging using domain-specific decision trees. Start by identifying the symptom category, then follow the corresponding tree.
Map user's symptom to the right tree:
| Symptom keywords | Category |
|---|---|
| "pass through", "no collision", "overlap", "stuck", "slides off" | Physics |
| "signal not firing", "not connected", "callback not called" | Signals |
| "invisible", "not showing", "behind", "flickering", "wrong color" | Rendering |
| "not moving to target", "path wrong", "stuck on nav", "no path" | Navigation |
| "key not working", "input ignored", "wrong button", "double input" | Input |
Check in this order -- each step is the most common cause at that point:
physics(action="layers") nodes(action="get_property", scene_path="<scene>.tscn", name="<body>", property="collision_layer")
nodes(action="get_property", scene_path="<scene>.tscn", name="<body>", property="collision_mask")collision_mask has a bit that matches B's collision_layer. Both must be set correctly.scenes(action="info", scene_path="<scene>.tscn")StaticBody2D: immovable (walls, floors)CharacterBody2D: player/NPC movement via move_and_slide()RigidBody2D: physics-driven (projectiles, debris)RigidBody2D for a player character, then fighting the physics enginescripts(action="read", script_path="res://scripts/<name>.gd")velocity is being set before move_and_slide()_physics_process (not _process)delta is used for frame-independent movementsignals(action="list", scene_path="<scene>.tscn")signal health_changed(new_hp: int) requires handler func _on_health_changed(new_hp: int)print("signal emitted") before emit_signal() / signal.emit()connect() runsvisible property = false? Check node and ALL parents (parent invisible = children invisible)modulate.a = 0? (fully transparent)z_as_relative = true means z_index is relative to parentrender_target_update_modeenabled = true per viewportNavigationRegion2D/3D must exist in sceneNavigationPolygon/NavigationMesh resource assignedbake_navigation_mesh())path_desired_distance: how close before moving to next path pointtarget_desired_distance: how close to target before stoppingNavigationAgent.set_target_position() then check get_next_path_position()input_map(action="list")project.godot for [input] sectionInput.is_action_pressed("jump") -- exact string match required_input() vs _unhandled_input() -- if another node consumes the event, _unhandled_input never firesset_process_input(false) disables _input() on that nodeFor any category:
scenes(action="info", scene_path="<scene>.tscn")scripts(action="read", script_path="res://scripts/<name>.gd")nodes(action="get_property", scene_path="<scene>.tscn", name="<node_path>", property="<name>")project(action="run", scene_path="<scene>.tscn") and check output for errors~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.