https://github.com/slabgorb/sidequest
· scanned 2026-06-16 00:15 UTC (2 months, 2 weeks ago)
149 raw signals (0 security + 149 graph)
Last scanned 2 months, 2 weeks ago · v1 · 147 actionable findings from 1 signal source. 2 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 3500 nodes from the latest scan, grouped by kind. Each node is a unit the engine identified (file, function, endpoint, table…). Most users won't need this view — it's primarily for debugging the engine's graph extraction or for AI agents that want to enumerate the project structure.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
CLAUDE.md |
software | healthy | CLAUDE.md |
package.json |
software | healthy | package.json |
JARGONFILE.md |
software | healthy | JARGONFILE.md |
package-lock.json |
software | healthy | package-lock.json |
SOUL.md |
software | healthy | SOUL.md |
.env.example |
software | healthy | .env.example |
pyproject.toml |
software | healthy | pyproject.toml |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
README.md |
software | healthy | seeds/README.md |
questions.yaml |
software | healthy | seeds/questions.yaml |
untried-pairs.yaml |
software | healthy | seeds/untried-pairs.yaml |
__init__.py |
software | healthy | tests/__init__.py |
test_render_suffix.py |
software | healthy | tests/scripts/test_render_suffix.py |
test_send_render_background.py |
software | healthy | tests/scripts/test_send_render_background.py |
__init__.py |
software | healthy | tests/scripts/__init__.py |
test_generate_music.py |
software | healthy | tests/scripts/test_generate_music.py |
test_playtest_pick_portrait.py |
software | healthy | tests/scripts/test_playtest_pick_portrait.py |
test_playtest_span_jsonl.py |
software | healthy | tests/scripts/test_playtest_span_jsonl.py |
r2_preview.html |
software | healthy | docs/r2_preview.html |
projection-filter-predicates.md |
software | healthy | docs/projection-filter-predicates.md |
architecture.md |
software | healthy | docs/architecture.md |
feature-inventory-coverage-snapshot-2026-06-12.md |
software | healthy | docs/feature-inventory-coverage-snapshot-2026-06-12.md |
system-diagram.md |
software | healthy | docs/system-diagram.md |
gm-handbook.md |
software | healthy | docs/gm-handbook.md |
inventory-audit-2026-06-14.md |
software | healthy | docs/inventory-audit-2026-06-14.md |
genre-pack-structure.md |
software | healthy | docs/genre-pack-structure.md |
wiring-diagrams.md |
software | healthy | docs/wiring-diagrams.md |
api-contract.md |
software | healthy | docs/api-contract.md |
world-builder-skill-rough-edges.md |
software | healthy | docs/world-builder-skill-rough-edges.md |
FEATURES.md |
software | healthy | docs/FEATURES.md |
genre_pack_inheritance.md |
software | healthy | docs/genre_pack_inheritance.md |
llm-backends.md |
software | healthy | docs/llm-backends.md |
genre_pack_runtime_inheritance.md |
software | healthy | docs/genre_pack_runtime_inheritance.md |
playtest-cookbook.md |
software | healthy | docs/playtest-cookbook.md |
narrative-lenses.md |
software | healthy | docs/narrative-lenses.md |
feature-inventory.md |
software | healthy | docs/feature-inventory.md |
advancement-effect-hosts.md |
software | healthy | docs/advancement-effect-hosts.md |
relationship-systems.md |
software | healthy | docs/relationship-systems.md |
tech-stack.md |
software | healthy | docs/tech-stack.md |
genre-pack-status.md |
software | healthy | docs/genre-pack-status.md |
genre_pack_gaps_report.md |
software | healthy | docs/genre_pack_gaps_report.md |
confrontations-and-scenarios.md |
software | healthy | docs/sequence/confrontations-and-scenarios.md |
multiplayer-sealed-turns.md |
software | healthy | docs/sequence/multiplayer-sealed-turns.md |
lore-storage-and-retrieval.md |
software | healthy | docs/sequence/lore-storage-and-retrieval.md |
solo-turn.md |
software | healthy | docs/sequence/solo-turn.md |
image-rendering.md |
software | healthy | docs/sequence/image-rendering.md |
2026-04-20-mlx-examples-flux-notes.md |
software | healthy | docs/superpowers/notes/2026-04-20-mlx-examples-flux-notes.md |
2026-05-01-canned-openings-cross-pack-migration-handoff.md |
software | healthy | docs/superpowers/notes/2026-05-01-canned-openings-cross-pac… |
2026-06-05-ac5-otel-combat-engagement-brainstorm-handoff.md |
software | healthy | docs/superpowers/notes/2026-06-05-ac5-otel-combat-engagemen… |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
test_portrait_uses_portrait_suffix_when_declared |
software | healthy | tests/scripts/test_render_suffix.py:13 |
test_portrait_falls_back_to_shared_suffix_when_unset |
software | healthy | tests/scripts/test_render_suffix.py:21 |
test_portrait_falls_back_when_portrait_suffix_empty_string |
software | healthy | tests/scripts/test_render_suffix.py:26 |
test_poi_always_uses_positive_suffix_even_when_portrait_dec… |
software | healthy | tests/scripts/test_render_suffix.py:32 |
test_missing_all_suffixes_returns_empty |
software | healthy | tests/scripts/test_render_suffix.py:40 |
__init__ |
software | healthy | tests/scripts/test_send_render_background.py:25 |
write |
software | healthy | tests/scripts/test_send_render_background.py:29 |
drain |
software | healthy | tests/scripts/test_send_render_background.py:32 |
close |
software | healthy | tests/scripts/test_send_render_background.py:35 |
wait_closed |
software | healthy | tests/scripts/test_send_render_background.py:38 |
_fake_connection |
software | healthy | tests/scripts/test_send_render_background.py:42 |
fake_open |
software | healthy | tests/scripts/test_send_render_background.py:47 |
respond_when_written |
software | healthy | tests/scripts/test_send_render_background.py:50 |
test_send_render_background_param_wiring |
software | healthy | tests/scripts/test_send_render_background.py:73 |
test_discover_jobs_walks_pack_audio_music_dir |
software | healthy | tests/scripts/test_generate_music.py:13 |
test_discover_jobs_descends_into_nested_themed_dirs |
software | healthy | tests/scripts/test_generate_music.py:29 |
test_is_in_r2_returns_true_on_http_200 |
software | healthy | tests/scripts/test_generate_music.py:51 |
test_is_in_r2_returns_false_on_http_404 |
software | healthy | tests/scripts/test_generate_music.py:63 |
test_is_in_r2_honors_asset_base_url_env |
software | healthy | tests/scripts/test_generate_music.py:69 |
test_filter_jobs_by_track_returns_only_matching_stem |
software | healthy | tests/scripts/test_generate_music.py:78 |
test_filter_jobs_by_track_returns_empty_when_no_match |
software | healthy | tests/scripts/test_generate_music.py:91 |
test_send_render_uses_json_params_path_payload |
software | healthy | tests/scripts/test_generate_music.py:101 |
_pick_portrait_frame |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:43 |
test_pick_portrait_frame_returns_portrait_confirm |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:70 |
test_pick_portrait_works_without_class_pref |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:84 |
test_pick_portrait_answered_even_when_no_pickers_available |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:93 |
test_portrait_confirm_is_a_skip |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:108 |
test_pick_portrait_is_not_answered_with_continue |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:133 |
test_pick_portrait_is_not_answered_with_scene_choice |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:145 |
test_pick_portrait_does_not_silently_stall |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:155 |
test_select_scene_still_returns_scene_choice |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:173 |
test_class_pref_still_picks_matching_choice |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:186 |
test_confirmation_phase_still_confirms |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:201 |
test_complete_phase_still_marks_done |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:206 |
_synthetic_jaeger_payload |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:64 |
test_flatten_jaeger_tags_preserves_all_keys_and_native_valu… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:113 |
test_flatten_jaeger_tags_handles_bool_and_float_types |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:129 |
test_jaeger_span_to_record_parent_span_has_no_parent_id |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:141 |
test_jaeger_span_to_record_child_resolves_parent_from_child… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:155 |
test_parent_span_id_ignores_non_child_of_refs_and_treats_as… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:165 |
test_traces_to_jsonl_records_flattens_all_spans_across_trac… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:184 |
test_traces_to_jsonl_records_empty_payload_returns_empty_li… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:192 |
test_write_span_jsonl_round_trips_one_object_per_line |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:200 |
test_write_span_jsonl_raises_on_empty_records_no_file_writt… |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:217 |
test_span_jsonl_flag_is_wired_and_optional |
software | healthy | tests/scripts/test_playtest_span_jsonl.py:229 |
_md5_of |
software | healthy | scripts/r2_manifest.py:23 |
build_manifest_entry |
software | healthy | scripts/r2_manifest.py:32 |
write_manifest |
software | healthy | scripts/r2_manifest.py:52 |
load_manifest |
software | healthy | scripts/r2_manifest.py:67 |
collect_pois |
software | healthy | scripts/generate_poi_images.py:34 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
seeds |
software | healthy | seeds |
tests |
software | healthy | tests |
scripts |
software | healthy | tests/scripts |
docs |
software | healthy | docs |
sequence |
software | healthy | docs/sequence |
superpowers |
software | healthy | docs/superpowers |
notes |
software | healthy | docs/superpowers/notes |
playtest-reports |
software | healthy | docs/superpowers/playtest-reports |
plans |
software | healthy | docs/superpowers/plans |
superseded |
software | healthy | docs/superpowers/plans/superseded |
completed |
software | healthy | docs/superpowers/plans/completed |
specs |
software | healthy | docs/superpowers/specs |
cancelled |
software | healthy | docs/superpowers/specs/cancelled |
superseded |
software | healthy | docs/superpowers/specs/superseded |
completed |
software | healthy | docs/superpowers/specs/completed |
prd |
software | healthy | docs/prd |
research |
software | healthy | docs/research |
design |
software | healthy | docs/design |
magic-plugins |
software | healthy | docs/design/magic-plugins |
adr |
software | healthy | docs/adr |
analysis |
software | healthy | docs/analysis |
feature-inventory |
software | healthy | docs/feature-inventory |
schemas |
software | healthy | docs/schemas |
world-grounding |
software | healthy | docs/schemas/world-grounding |
scripts |
software | healthy | scripts |
tests |
software | healthy | scripts/tests |
.claude |
software | healthy | .claude |
projects |
software | healthy | .claude/projects |
-Users-keithavery-Projects-oq-2 |
software | healthy | .claude/projects/-Users-keithavery-Projects-oq-2 |
memory |
software | healthy | .claude/projects/-Users-keithavery-Projects-oq-2/memory |
commands |
software | healthy | .claude/commands |
agents |
software | healthy | .claude/agents |
templates |
software | healthy | .claude/agents/templates |
native |
software | healthy | .claude/agents/native |
hooks |
software | healthy | .claude/hooks |
skills |
software | healthy | .claude/skills |
settings |
software | healthy | .claude/skills/settings |
finalize-run |
software | healthy | .claude/skills/finalize-run |
judge |
software | healthy | .claude/skills/judge |
pf-peloton |
software | healthy | .claude/skills/pf-peloton |
demo |
software | healthy | .claude/skills/demo |
context-engineering |
software | healthy | .claude/skills/context-engineering |
jira |
software | healthy | .claude/skills/jira |
testing |
software | healthy | .claude/skills/testing |
references |
software | healthy | .claude/skills/testing/references |
pf-testing |
software | healthy | .claude/skills/pf-testing |
references |
software | healthy | .claude/skills/pf-testing/references |
pf-theme |
software | healthy | .claude/skills/pf-theme |
pf-workflow |
software | healthy | .claude/skills/pf-workflow |
pf-systematic-debugging |
software | healthy | .claude/skills/pf-systematic-debugging |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
port:9222 |
network | healthy | .claude/skills/pf-systematic-debugging/SKILL.md |
port:76 |
network | healthy | sprint/epic-84.yaml |
port:84 |
network | healthy | sprint/epic-84.yaml |
port:07 |
network | healthy | sprint/archive/epic-71.yaml |
port:17 |
network | healthy | sprint/archive/epic-71.yaml |
port:19 |
network | healthy | sprint/archive/epic-71.yaml |
port:50 |
network | healthy | sprint/archive/epic-71.yaml |
port:09 |
network | healthy | sprint/archive/epic-71.yaml |
port:44 |
network | healthy | sprint/archive/epic-71.yaml |
port:15 |
network | healthy | sprint/archive/epic-71.yaml |
port:51 |
network | healthy | sprint/archive/epic-71.yaml |
port:22 |
network | healthy | sprint/archive/epic-71.yaml |
port:20 |
network | healthy | sprint/archive/epic-71.yaml |
port:06 |
network | healthy | sprint/archive/epic-71.yaml |
port:08 |
network | healthy | sprint/archive/epic-71.yaml |
port:23 |
network | healthy | sprint/archive/epic-73.yaml |
port:31 |
network | healthy | sprint/archive/epic-73.yaml |
port:61 |
network | healthy | sprint/archive/epic-64.yaml |
port:218 |
network | healthy | sprint/archive/epic-64.yaml |
port:30 |
network | healthy | sprint/archive/epic-15.yaml |
port:05 |
network | healthy | sprint/archive/epic-15.yaml |
port:18 |
network | healthy | sprint/archive/epic-15.yaml |
port:35 |
network | healthy | sprint/archive/epic-15.yaml |
port:10 |
network | healthy | sprint/archive/epic-15.yaml |
port:16 |
network | healthy | sprint/archive/epic-116.yaml |
port:02 |
network | healthy | sprint/archive/epic-116.yaml |
port:39 |
network | healthy | sprint/archive/epic-116.yaml |
port:14 |
network | healthy | sprint/archive/epic-45.yaml |
port:43 |
network | healthy | sprint/archive/epic-45.yaml |
port:56 |
network | healthy | sprint/archive/epic-45.yaml |
port:04 |
network | healthy | sprint/archive/epic-49.yaml |
port:01 |
network | healthy | sprint/demos/45-24/metadata.yaml |
port:29 |
network | healthy | sprint/demos/45-32/metadata.yaml |
port:32 |
network | healthy | sprint/demos/82-2/metadata.yaml |
port:11 |
network | healthy | sprint/demos/108-3/metadata.yaml |
port:12 |
network | healthy | sprint/demos/108-8/metadata.yaml |
port:13 |
network | healthy | sprint/demos/108-6/metadata.yaml |
port:49 |
network | healthy | sprint/demos/91-5/metadata.yaml |
port:57 |
network | healthy | sprint/demos/102-4/metadata.yaml |
port:21 |
network | healthy | sprint/demos/118-1/metadata.yaml |
port:41 |
network | healthy | sprint/demos/102-2/metadata.yaml |
port:40 |
network | healthy | sprint/demos/103-2/metadata.yaml |
port:59 |
network | healthy | sprint/demos/45-46/metadata.yaml |
port:34 |
network | healthy | sprint/demos/86-1/metadata.yaml |
port:26 |
network | healthy | sprint/demos/117-1/metadata.yaml |
port:03 |
network | healthy | sprint/demos/104-4/metadata.yaml |
port:54 |
network | healthy | sprint/demos/47-10/metadata.yaml |
port:38 |
network | healthy | sprint/demos/73-6/metadata.yaml |
port:53 |
network | healthy | sprint/demos/45-52/metadata.yaml |
port:25 |
network | healthy | sprint/demos/72-5/metadata.yaml |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_FakeWriter |
software | healthy | tests/scripts/test_send_render_background.py:24 |
TestPickPortraitAnswered |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:69 |
TestPickPortraitSkips |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:107 |
TestPickPortraitNotMisrouted |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:132 |
TestExistingChargenUnaffected |
software | healthy | tests/scripts/test_playtest_pick_portrait.py:168 |
UncataloguedTrackError |
software | healthy | scripts/render_pd_audio.py:75 |
ComposeError |
software | healthy | scripts/render_common.py:159 |
ReconcileResult |
software | healthy | scripts/reconcile_dark_spend.py:43 |
AuditResult |
software | healthy | scripts/r2_audit.py:69 |
Asset |
software | healthy | scripts/generate_r2_preview.py:77 |
ADR |
software | healthy | scripts/regenerate_adr_indexes.py:60 |
ScenarioError |
software | healthy | scripts/playtest.py:104 |
SpanCaptureEmpty |
software | healthy | scripts/playtest.py:149 |
AutoChargen |
software | healthy | scripts/playtest.py:405 |
Playtest |
software | healthy | scripts/playtest.py:572 |
ContactSheetError |
software | healthy | scripts/playtest.py:1055 |
OtlpSpanBuffer |
software | healthy | scripts/playtest_otlp.py:118 |
ManifestError |
software | healthy | scripts/playtest_manifest.py:49 |
Anchor |
software | healthy | scripts/playtest_manifest.py:55 |
Story |
software | healthy | scripts/playtest_manifest.py:105 |
PingTask |
software | healthy | scripts/playtest_manifest.py:132 |
Design |
software | healthy | scripts/playtest_manifest.py:170 |
MergedPR |
software | healthy | scripts/playtest_manifest.py:248 |
Manifest |
software | healthy | scripts/playtest_manifest.py:275 |
ManifestError |
software | healthy | scripts/feature_inventory_verify.py:96 |
Feature |
software | healthy | scripts/feature_inventory_verify.py:101 |
Category |
software | healthy | scripts/feature_inventory_verify.py:112 |
VerifyContext |
software | healthy | scripts/feature_inventory_verify.py:153 |
Group |
software | healthy | scripts/generate_image_sheets.py:49 |
_FakePaginator |
software | healthy | scripts/tests/test_r2_manifest_from_bucket.py:20 |
_FakeClient |
software | healthy | scripts/tests/test_r2_manifest_from_bucket.py:28 |
TestPlaytestMain |
software | healthy | scripts/tests/test_playtest_split.py:24 |
TestPlaytestDashboard |
software | healthy | scripts/tests/test_playtest_split.py:80 |
TestPlaytestMessages |
software | healthy | scripts/tests/test_playtest_split.py:150 |
TestPlaytestOtlp |
software | healthy | scripts/tests/test_playtest_split.py:224 |
TestCLIIntegration |
software | healthy | scripts/tests/test_playtest_split.py:249 |
TestCrossModuleIntegration |
software | healthy | scripts/tests/test_playtest_split.py:277 |
TestClaudeTabExists |
software | healthy | scripts/tests/test_claude_tab.py:75 |
TestToolTimeline |
software | healthy | scripts/tests/test_claude_tab.py:113 |
TestTokenBreakdown |
software | healthy | scripts/tests/test_claude_tab.py:160 |
TestCostAccumulator |
software | healthy | scripts/tests/test_claude_tab.py:191 |
TestToolFailureIndicator |
software | healthy | scripts/tests/test_claude_tab.py:222 |
TestTurnCorrelation |
software | healthy | scripts/tests/test_claude_tab.py:248 |
TestTabBadge |
software | healthy | scripts/tests/test_claude_tab.py:271 |
TestClaudeOtelEventRouting |
software | healthy | scripts/tests/test_claude_tab.py:294 |
TestClaudeStateManagement |
software | healthy | scripts/tests/test_claude_tab.py:331 |
TestSwitchTabIntegration |
software | healthy | scripts/tests/test_claude_tab.py:354 |
TestUpdateAllIntegration |
software | healthy | scripts/tests/test_claude_tab.py:369 |
TestNoSilentErrorSwallowing |
software | healthy | scripts/tests/test_claude_tab.py:390 |
TestStrictEquality |
software | healthy | scripts/tests/test_claude_tab.py:410 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | CLAUDE.md |
postgresql |
data | healthy | CLAUDE.md |
postgres |
data | healthy | .env.example |
redis |
data | healthy | .claude/skills/pf-mermaid/SKILL.md |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::sprint/epic-119.yaml |
security | healthy | sprint/epic-119.yaml |
auth::.claude/skills/sq-llm-costs/SKILL.md |
security | healthy | .claude/skills/sq-llm-costs/SKILL.md |
auth::.claude/skills/pf-context-engineering/SKILL.md |
security | healthy | .claude/skills/pf-context-engineering/SKILL.md |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | .claude/skills/sq-playtest/SKILL.md |
2.4.8.1 |
network | healthy | sprint/archive/epic-86.yaml |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-cdu8voio |
software | healthy | /tmp/repobility-clone-cdu8voio |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
vps::aws |
hardware | healthy | scripts/r2_manifest.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gha::just-otel-smoke |
cicd | healthy | .github/workflows/just-otel-smoke.yml |
| Label | Layer | Status | Path |
|---|---|---|---|
just-otel |
cicd | healthy | .github/workflows/just-otel-smoke.yml |
This page is publicly accessible at:
https://repobility.com/scan/5789bdf8-29b1-463b-a0f9-18c1841cad40/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/5789bdf8-29b1-463b-a0f9-18c1841cad40/
Important — please don't re-submit the same URL repeatedly. The submission endpoint is idempotent: re-submitting the same git URL returns this same scan_token, not a new one. To re-scan this repo, sign up free and use the dashboard.