https://github.com/Screddyice/qa-conflict-bot
· scanned 2026-06-16 00:05 UTC (2 months, 3 weeks ago)
26 raw signals (14 security + 12 graph)
Last scanned 2 months, 3 weeks ago · v1 · 18 actionable findings from 2 signal sources. 27 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 416 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 |
|---|---|---|---|
test_complete_claude_builds_command |
software | healthy | tests/test_llm_complete.py:11 |
fake_run_capture |
software | healthy | tests/test_llm_complete.py:55 |
test_complete_codex_is_read_only |
software | healthy | tests/test_llm_complete.py:30 |
test_complete_unknown_backend_raises |
software | healthy | tests/test_llm_complete.py:46 |
test_complete_claude_without_token_omits_env |
software | healthy | tests/test_llm_complete.py:51 |
test_parse_nav_status_extracts_code |
software | healthy | tests/test_qa_browse.py:43 |
test_parse_nav_status_missing_is_zero |
software | healthy | tests/test_qa_browse.py:48 |
test_unwrap_untrusted_strips_markers |
software | healthy | tests/test_qa_browse.py:52 |
test_unwrap_untrusted_without_markers_passes_through |
software | healthy | tests/test_qa_browse.py:56 |
test_parse_console_errors_extracts_messages |
software | healthy | tests/test_qa_browse.py:60 |
test_parse_console_errors_clean_is_empty |
software | healthy | tests/test_qa_browse.py:67 |
test_fakebrowse_returns_canned_state |
software | healthy | tests/test_qa_browse.py:74 |
_stub_browse |
software | healthy | tests/test_qa_browse.py:87 |
fake_run_text |
software | healthy | tests/test_qa_browse.py:158 |
test_capture_runs_goto_text_console_in_order |
software | healthy | tests/test_qa_browse.py:107 |
test_capture_takes_screenshot_when_path_given |
software | healthy | tests/test_qa_browse.py:131 |
test_capture_screenshot_failure_is_best_effort |
software | healthy | tests/test_qa_browse.py:152 |
_cfg |
software | healthy | tests/test_orchestrator.py:17 |
_strict_should_abort |
software | healthy | tests/test_orchestrator.py:39 |
test_strict_aborts_when_no_verify_anywhere |
software | healthy | tests/test_orchestrator.py:44 |
test_strict_passes_when_repo_has_test |
software | healthy | tests/test_orchestrator.py:50 |
test_strict_passes_when_env_default_has_lint |
software | healthy | tests/test_orchestrator.py:56 |
test_strict_off_never_aborts_even_with_empty_verify |
software | healthy | tests/test_orchestrator.py:62 |
test_repo_override_takes_precedence_over_env_default |
software | healthy | tests/test_orchestrator.py:68 |
__init__ |
software | healthy | tests/test_linear.py:31 |
__aenter__ |
software | healthy | tests/test_linear.py:17 |
__aexit__ |
software | healthy | tests/test_linear.py:20 |
json |
software | healthy | tests/test_linear.py:23 |
text |
software | healthy | tests/test_linear.py:26 |
post |
software | healthy | tests/test_linear.py:36 |
test_parse_linear_tokens_lowercases_owners |
software | healthy | tests/test_linear.py:44 |
test_parse_linear_tokens_empty_and_malformed_are_empty |
software | healthy | tests/test_linear.py:49 |
test_find_issue_id_parses_attachment_and_sends_auth |
software | healthy | tests/test_linear.py:60 |
test_find_issue_id_returns_none_when_no_attachment |
software | healthy | tests/test_linear.py:76 |
test_comment_succeeds |
software | healthy | tests/test_linear.py:82 |
test_comment_raises_when_not_successful |
software | healthy | tests/test_linear.py:91 |
test_graphql_errors_raise |
software | healthy | tests/test_linear.py:98 |
test_graphql_http_failure_raises |
software | healthy | tests/test_linear.py:105 |
_run |
software | healthy | tests/test_git_ops.py:15 |
conflict_repo |
software | healthy | tests/test_git_ops.py:20 |
test_commit_paths_excludes_untracked_artifacts |
software | healthy | tests/test_git_ops.py:50 |
test_merge_detects_conflict |
software | healthy | tests/test_git_ops.py:82 |
test_branch_not_found_raises_specific_exception |
software | healthy | tests/test_git_ops.py:107 |
test_concurrent_clones_use_distinct_dirs |
software | healthy | tests/test_git_ops.py:130 |
test_diffs_against_merge_base |
software | healthy | tests/test_git_ops.py:164 |
_pkg |
software | healthy | tests/test_qa_detect.py:9 |
test_next_app |
software | healthy | tests/test_qa_detect.py:15 |
test_vite_app_uses_preview_4173 |
software | healthy | tests/test_qa_detect.py:24 |
test_react_scripts_no_build |
software | healthy | tests/test_qa_detect.py:32 |
test_generic_dev_script |
software | healthy | tests/test_qa_detect.py:41 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
README.md |
software | healthy | README.md |
.pr-conflict-bot.toml |
software | healthy | .pr-conflict-bot.toml |
CONTRIBUTING.md |
software | healthy | CONTRIBUTING.md |
pyproject.toml |
software | healthy | pyproject.toml |
LICENSE |
software | healthy | LICENSE |
legion.toml |
software | healthy | legion.toml |
NOTICE |
software | healthy | NOTICE |
test_llm_complete.py |
software | healthy | tests/test_llm_complete.py |
test_qa_browse.py |
software | healthy | tests/test_qa_browse.py |
test_orchestrator.py |
software | healthy | tests/test_orchestrator.py |
__init__.py |
software | healthy | tests/__init__.py |
test_linear.py |
software | healthy | tests/test_linear.py |
test_git_ops.py |
software | healthy | tests/test_git_ops.py |
test_qa_detect.py |
software | healthy | tests/test_qa_detect.py |
test_qa_orchestrator.py |
software | healthy | tests/test_qa_orchestrator.py |
test_qa_report.py |
software | healthy | tests/test_qa_report.py |
test_alerts.py |
software | healthy | tests/test_alerts.py |
test_qa_url_resolver.py |
software | healthy | tests/test_qa_url_resolver.py |
test_qa_fix.py |
software | healthy | tests/test_qa_fix.py |
test_qa_methodology.py |
software | healthy | tests/test_qa_methodology.py |
test_server.py |
software | healthy | tests/test_server.py |
test_server_qa_enqueue.py |
software | healthy | tests/test_server_qa_enqueue.py |
test_qa_policy.py |
software | healthy | tests/test_qa_policy.py |
test_qa_browse_smoke.py |
software | healthy | tests/test_qa_browse_smoke.py |
test_qa_config.py |
software | healthy | tests/test_qa_config.py |
2026-05-25-qa-mode-m1.md |
software | healthy | docs/superpowers/plans/2026-05-25-qa-mode-m1.md |
2026-05-26-org-wide-qa-and-fix-mode.md |
software | healthy | docs/superpowers/plans/2026-05-26-org-wide-qa-and-fix-mode.… |
2026-05-25-pr-qa-mode-design.md |
software | healthy | docs/superpowers/specs/2026-05-25-pr-qa-mode-design.md |
2026-05-26-org-wide-qa-and-fix-mode.md |
software | healthy | docs/superpowers/specs/2026-05-26-org-wide-qa-and-fix-mode.… |
setup-github-app.py |
software | healthy | scripts/setup-github-app.py |
.env.example |
software | healthy | examples/.env.example |
qa_policy.py |
software | healthy | src/pr_conflict_bot/qa_policy.py |
__init__.py |
software | healthy | src/pr_conflict_bot/__init__.py |
config.py |
software | healthy | src/pr_conflict_bot/config.py |
linear.py |
software | healthy | src/pr_conflict_bot/linear.py |
llm.py |
software | healthy | src/pr_conflict_bot/llm.py |
orchestrator.py |
software | healthy | src/pr_conflict_bot/orchestrator.py |
alerts.py |
software | healthy | src/pr_conflict_bot/alerts.py |
verify.py |
software | healthy | src/pr_conflict_bot/verify.py |
server.py |
software | healthy | src/pr_conflict_bot/server.py |
__main__.py |
software | healthy | src/pr_conflict_bot/__main__.py |
github_api.py |
software | healthy | src/pr_conflict_bot/github_api.py |
git_ops.py |
software | healthy | src/pr_conflict_bot/git_ops.py |
__init__.py |
software | healthy | src/pr_conflict_bot/qa/__init__.py |
orchestrator.py |
software | healthy | src/pr_conflict_bot/qa/orchestrator.py |
browse.py |
software | healthy | src/pr_conflict_bot/qa/browse.py |
methodology.py |
software | healthy | src/pr_conflict_bot/qa/methodology.py |
detect.py |
software | healthy | src/pr_conflict_bot/qa/detect.py |
url_resolver.py |
software | healthy | src/pr_conflict_bot/qa/url_resolver.py |
report.py |
software | healthy | src/pr_conflict_bot/qa/report.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
_FakeResp |
software | healthy | tests/test_linear.py:12 |
_FakeSession |
software | healthy | tests/test_linear.py:30 |
FakeGH |
software | healthy | tests/test_qa_orchestrator.py:24 |
_FakeSend |
software | healthy | tests/test_alerts.py:69 |
_FakeResponse |
software | healthy | tests/test_alerts.py:139 |
_FakeSession |
software | healthy | tests/test_alerts.py:156 |
_GH |
software | healthy | tests/test_qa_fix.py:37 |
Handler |
software | healthy | scripts/setup-github-app.py:68 |
ConfigError |
software | healthy | src/pr_conflict_bot/config.py:12 |
GitHubAppConfig |
software | healthy | src/pr_conflict_bot/config.py:17 |
LLMConfig |
software | healthy | src/pr_conflict_bot/config.py:25 |
VerifyConfig |
software | healthy | src/pr_conflict_bot/config.py:50 |
QAConfig |
software | healthy | src/pr_conflict_bot/config.py:59 |
BotIdentity |
software | healthy | src/pr_conflict_bot/config.py:75 |
Config |
software | healthy | src/pr_conflict_bot/config.py:81 |
RepoOverride |
software | healthy | src/pr_conflict_bot/config.py:231 |
LinearError |
software | healthy | src/pr_conflict_bot/linear.py:18 |
LinearClient |
software | healthy | src/pr_conflict_bot/linear.py:22 |
LLMError |
software | healthy | src/pr_conflict_bot/llm.py:24 |
ResolveRequest |
software | healthy | src/pr_conflict_bot/llm.py:29 |
Alerter |
software | healthy | src/pr_conflict_bot/alerts.py:69 |
StepResult |
software | healthy | src/pr_conflict_bot/verify.py:17 |
VerifyResult |
software | healthy | src/pr_conflict_bot/verify.py:26 |
PRJob |
software | healthy | src/pr_conflict_bot/server.py:30 |
GitHubError |
software | healthy | src/pr_conflict_bot/github_api.py:25 |
_CachedToken |
software | healthy | src/pr_conflict_bot/github_api.py:30 |
GitHubClient |
software | healthy | src/pr_conflict_bot/github_api.py:35 |
GitError |
software | healthy | src/pr_conflict_bot/git_ops.py:12 |
BranchNotFound |
software | healthy | src/pr_conflict_bot/git_ops.py:16 |
MergeOutcome |
software | healthy | src/pr_conflict_bot/git_ops.py:21 |
CloneSpec |
software | healthy | src/pr_conflict_bot/git_ops.py:27 |
_GH |
software | healthy | src/pr_conflict_bot/qa/orchestrator.py:53 |
FixOutcome |
software | healthy | src/pr_conflict_bot/qa/orchestrator.py:74 |
QADeps |
software | healthy | src/pr_conflict_bot/qa/orchestrator.py:110 |
PageState |
software | healthy | src/pr_conflict_bot/qa/browse.py:41 |
BrowseEngine |
software | healthy | src/pr_conflict_bot/qa/browse.py:49 |
FakeBrowse |
software | healthy | src/pr_conflict_bot/qa/browse.py:53 |
BrowseError |
software | healthy | src/pr_conflict_bot/qa/browse.py:68 |
SubprocessBrowse |
software | healthy | src/pr_conflict_bot/qa/browse.py:109 |
ServeSpec |
software | healthy | src/pr_conflict_bot/qa/detect.py:20 |
URLResolutionError |
software | healthy | src/pr_conflict_bot/qa/url_resolver.py:29 |
Finding |
software | healthy | src/pr_conflict_bot/qa/report.py:17 |
| Label | Layer | Status | Path |
|---|---|---|---|
tests |
software | healthy | tests |
docs |
software | healthy | docs |
superpowers |
software | healthy | docs/superpowers |
plans |
software | healthy | docs/superpowers/plans |
specs |
software | healthy | docs/superpowers/specs |
scripts |
software | healthy | scripts |
examples |
software | healthy | examples |
src |
software | healthy | src |
pr_conflict_bot |
software | healthy | src/pr_conflict_bot |
qa |
software | healthy | src/pr_conflict_bot/qa |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::README.md |
security | healthy | README.md |
auth::src/pr_conflict_bot/github_api.py |
security | healthy | src/pr_conflict_bot/github_api.py |
auth::src/pr_conflict_bot/alerts.py |
security | healthy | src/pr_conflict_bot/alerts.py |
| Label | Layer | Status | Path |
|---|---|---|---|
caddy |
network | healthy | README.md |
nginx |
network | healthy | README.md |
| Label | Layer | Status | Path |
|---|---|---|---|
repobility-clone-d0va9qo2 |
software | healthy | /tmp/repobility-clone-d0va9qo2 |
| Label | Layer | Status | Path |
|---|---|---|---|
127.0.0.1 |
network | healthy | README.md |
This page is publicly accessible at:
https://repobility.com/scan/c15ecfc4-a820-418f-b0ed-b20da1579f56/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/c15ecfc4-a820-418f-b0ed-b20da1579f56/
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.