https://github.com/kostadis/CampaignGenerator
· scanned 2026-06-16 04:31 UTC (2 months ago)
62 raw signals (0 security + 62 graph)
Last scanned 2 months ago · v1 · 47 actionable findings from 1 signal source. 15 repeated signals grouped for readability. Security checks, system graph analysis, and verified AI-agent feedback are merged into one review queue.
All 722 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 |
|---|---|---|---|
main |
software | healthy | sd_plan.py:21 |
resolve_existing |
software | healthy | new_workspace.py:132 |
placeholder |
software | healthy | new_workspace.py:140 |
main |
software | healthy | new_workspace.py:146 |
split_sections |
software | healthy | voice_lint.py:44 |
lint |
software | healthy | voice_lint.py:60 |
main |
software | healthy | voice_lint.py:97 |
_slug |
software | healthy | launch_5etools_mcp.py:59 |
runtime_dir_for |
software | healthy | launch_5etools_mcp.py:65 |
_sources_hash |
software | healthy | launch_5etools_mcp.py:72 |
_is_up_to_date |
software | healthy | launch_5etools_mcp.py:81 |
_write_sidecar |
software | healthy | launch_5etools_mcp.py:93 |
_peek_shape |
software | healthy | launch_5etools_mcp.py:103 |
_all_canonical_sources_in_scope |
software | healthy | launch_5etools_mcp.py:164 |
_build_canonical_data |
software | healthy | launch_5etools_mcp.py:169 |
_filter_metalist_file |
software | healthy | launch_5etools_mcp.py:232 |
_filter_index_and_symlink |
software | healthy | launch_5etools_mcp.py:250 |
_build_homebrew |
software | healthy | launch_5etools_mcp.py:285 |
build_runtime_tree |
software | healthy | launch_5etools_mcp.py:350 |
cmd_status |
software | healthy | launch_5etools_mcp.py:365 |
cmd_dry_run |
software | healthy | launch_5etools_mcp.py:385 |
cmd_init_local |
software | healthy | launch_5etools_mcp.py:393 |
cmd_apply |
software | healthy | launch_5etools_mcp.py:418 |
_parse_args |
software | healthy | launch_5etools_mcp.py:449 |
main |
software | healthy | launch_5etools_mcp.py:488 |
parse_roleplay_quotes |
software | healthy | quote_ledger.py:26 |
parse_scene_dialogue |
software | healthy | quote_ledger.py:60 |
normalize_quote |
software | healthy | quote_ledger.py:67 |
match_quote |
software | healthy | quote_ledger.py:76 |
first_n_words |
software | healthy | quote_ledger.py:81 |
chunk_from_source_file |
software | healthy | quote_ledger.py:86 |
__init__ |
software | healthy | quote_ledger.py:122 |
_ensure_schema |
software | healthy | quote_ledger.py:128 |
close |
software | healthy | quote_ledger.py:131 |
sync |
software | dead | quote_ledger.py:136 |
_ingest_roleplay |
software | healthy | quote_ledger.py:159 |
_match_to_scenes |
software | healthy | quote_ledger.py:180 |
chunk_assign |
software | dead | quote_ledger.py:229 |
get_quotes_grouped |
software | dead | quote_ledger.py:264 |
assign |
software | dead | quote_ledger.py:294 |
bulk_assign |
software | dead | quote_ledger.py:303 |
bulk_unassign |
software | dead | quote_ledger.py:315 |
make_exclusive |
software | dead | quote_ledger.py:327 |
get_scene_quotes |
software | dead | quote_ledger.py:343 |
get_all_quotes |
software | dead | quote_ledger.py:352 |
_scalar |
software | healthy | quote_ledger.py:363 |
parse_vtt |
software | healthy | vtt_voice_compare.py:89 |
extract_player_lines |
software | healthy | vtt_voice_compare.py:117 |
build_user_prompt |
software | healthy | vtt_voice_compare.py:122 |
append_to_voice_file |
software | healthy | vtt_voice_compare.py:140 |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
sd_plan.py |
software | healthy | sd_plan.py |
new_workspace.py |
software | healthy | new_workspace.py |
voice_lint.py |
software | healthy | voice_lint.py |
launch_5etools_mcp.py |
software | healthy | launch_5etools_mcp.py |
quote_ledger.py |
software | healthy | quote_ledger.py |
vtt_voice_compare.py |
software | healthy | vtt_voice_compare.py |
enhance_summary.py |
software | healthy | enhance_summary.py |
extract_facts.py |
software | healthy | extract_facts.py |
CLAUDE.md |
software | healthy | CLAUDE.md |
polish.py |
software | healthy | polish.py |
check_consistency.py |
software | healthy | check_consistency.py |
ensemble.py |
software | healthy | ensemble.py |
distill.py |
software | healthy | distill.py |
scene_extract.py |
software | healthy | scene_extract.py |
fivetools_copy.py |
software | healthy | fivetools_copy.py |
HANDOFF.md |
software | healthy | HANDOFF.md |
rpg_retriever.py |
software | healthy | rpg_retriever.py |
split_chapters.py |
software | healthy | split_chapters.py |
dnd_sheet.py |
software | healthy | dnd_sheet.py |
query.py |
software | healthy | query.py |
assemble.py |
software | healthy | assemble.py |
CHANGELOG.md |
software | healthy | CHANGELOG.md |
apply_ingest_manifest.py |
software | healthy | apply_ingest_manifest.py |
fivetools_catalog.py |
software | healthy | fivetools_catalog.py |
resolve_refs.py |
software | healthy | resolve_refs.py |
campaign_state.py |
software | healthy | campaign_state.py |
TODO.md |
software | healthy | TODO.md |
synthesise_polish.py |
software | healthy | synthesise_polish.py |
requirements.txt |
software | healthy | requirements.txt |
CONTINUE.md |
software | healthy | CONTINUE.md |
ROADMAP.md |
software | healthy | ROADMAP.md |
dossier_proposer.py |
software | healthy | dossier_proposer.py |
campaignlib.py |
software | healthy | campaignlib.py |
npc_table.py |
software | healthy | npc_table.py |
scabard_sync.py |
software | healthy | scabard_sync.py |
scrub_mechanics.py |
software | healthy | scrub_mechanics.py |
synthesise_facts.py |
software | healthy | synthesise_facts.py |
spell_canon.py |
software | healthy | spell_canon.py |
README.md |
software | healthy | README.md |
mempalace_client.py |
software | healthy | mempalace_client.py |
ensemble_extract.py |
software | healthy | ensemble_extract.py |
fivetools_render.py |
software | healthy | fivetools_render.py |
LICENSE |
software | healthy | LICENSE |
arc_triggers.py |
software | healthy | arc_triggers.py |
planning.py |
software | healthy | planning.py |
vtt_summary.py |
software | healthy | vtt_summary.py |
sd_consistency.py |
software | healthy | sd_consistency.py |
convert_book.py |
software | healthy | convert_book.py |
party.py |
software | healthy | party.py |
synthesise_world_state.py |
software | healthy | synthesise_world_state.py |
Showing first 50 of this kind. Full payload available via the JSON button at the top of the page.
| Label | Layer | Status | Path |
|---|---|---|---|
QuoteLedger |
software | healthy | quote_ledger.py:119 |
Section |
software | healthy | polish.py:42 |
ChangelogEntry |
software | healthy | polish.py:50 |
WorkingDoc |
software | healthy | polish.py:61 |
ToolError |
software | healthy | polish.py:128 |
ToolContext |
software | healthy | polish.py:133 |
TraceWriter |
software | healthy | polish.py:483 |
_CopyResolver |
software | healthy | fivetools_copy.py:182 |
RetrievalResult |
software | healthy | rpg_retriever.py:217 |
Candidate |
software | healthy | fivetools_catalog.py:55 |
CatalogIndex |
software | healthy | fivetools_catalog.py:83 |
ResolvedRoot |
software | healthy | resolve_refs.py:54 |
ResolvedRef |
software | healthy | resolve_refs.py:63 |
ResolvedScope |
software | healthy | resolve_refs.py:74 |
Candidate |
software | healthy | dossier_proposer.py:124 |
Proposal |
software | healthy | dossier_proposer.py:143 |
_OpenAICompatResponse |
software | healthy | campaignlib.py:894 |
_Block |
software | healthy | campaignlib.py:897 |
_OpenAICompatStream |
software | healthy | campaignlib.py:907 |
_OpenAICompatMessages |
software | healthy | campaignlib.py:946 |
_OpenAICompatClient |
software | healthy | campaignlib.py:983 |
_ClaudeCodeStream |
software | healthy | campaignlib.py:1133 |
_ClaudeCodeMessages |
software | healthy | campaignlib.py:1163 |
_ClaudeCodeClient |
software | healthy | campaignlib.py:1193 |
MempalaceError |
software | healthy | mempalace_client.py:41 |
MempalaceProcessError |
software | healthy | mempalace_client.py:45 |
MempalaceClient |
software | healthy | mempalace_client.py:49 |
FakeMempalaceClient |
software | healthy | mempalace_client.py:361 |
PlanningEntry |
software | healthy | planning.py:81 |
PlanningConfig |
software | healthy | planning.py:89 |
PartyCharacter |
software | healthy | party.py:71 |
PartyConfig |
software | healthy | party.py:80 |
Bundle |
software | healthy | facts_to_state.py:79 |
_SceneResult |
software | healthy | sd_narrate.py:48 |
ProposalRequired |
software | healthy | proposal_loader.py:40 |
ProposalNotApproved |
software | healthy | proposal_loader.py:44 |
LoadedProposal |
software | healthy | proposal_loader.py:53 |
ConversionSuggestion |
software | healthy | suggest_conversion.py:70 |
| Label | Layer | Status | Path |
|---|---|---|---|
192.168.1.147 |
network | healthy | extract_facts.py |
192.168.1.69 |
network | healthy | ensemble.py |
| Label | Layer | Status | Path |
|---|---|---|---|
kostadis__CampaignGenerator |
software | healthy | /data/fable5_failed_archive/kostadis__CampaignGenerator |
| Label | Layer | Status | Path |
|---|---|---|---|
sqlite |
data | healthy | quote_ledger.py |
| Label | Layer | Status | Path |
|---|---|---|---|
quote |
data | healthy | quote_ledger.py |
| Label | Layer | Status | Path |
|---|---|---|---|
envoy |
network | healthy | dossier_proposer.py |
| Label | Layer | Status | Path |
|---|---|---|---|
gpu (detected) |
hardware | healthy | extract_facts.py |
| Label | Layer | Status | Path |
|---|---|---|---|
auth::campaignlib.py |
security | healthy | campaignlib.py |
This page is publicly accessible at:
https://repobility.com/scan/2e8c2d59-3aed-42c0-8d5d-682e9f5fcce6/
To check status programmatically (no auth required):
curl -s https://repobility.com/api/v1/public/scan/2e8c2d59-3aed-42c0-8d5d-682e9f5fcce6/
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.