Audit Tips

This commit is contained in:
DazedAnon 2026-07-21 13:38:04 -05:00
parent 954016f4b6
commit 7e02356b01
7 changed files with 129 additions and 70 deletions

View file

@ -7619,7 +7619,7 @@ public static class AgentHarness
}
}
// Genes are all B (gain/remove tips never own the camera).
// Genes / clan / language are all B (never own the camera).
int geneCamera = 0;
foreach (string id in EventCatalog.Gene.AuthoredIds)
{
@ -7629,6 +7629,24 @@ public static class AgentHarness
}
}
int clanCamera = 0;
foreach (string id in EventCatalog.ClanTrait.AuthoredIds)
{
if (EventCatalog.ClanTrait.GetOrFallback(id).CreatesInterest)
{
clanCamera++;
}
}
int languageCamera = 0;
foreach (string id in EventCatalog.LanguageTrait.AuthoredIds)
{
if (EventCatalog.LanguageTrait.GetOrFallback(id).CreatesInterest)
{
languageCamera++;
}
}
// Spot-check other Signal classes still have camera rows after demote.
int lawSignal = 0;
foreach (string id in EventCatalog.WorldLaw.AuthoredIds)
@ -7662,6 +7680,8 @@ public static class AgentHarness
pass = dialBad == 0
&& phenotypeCamera == 0
&& geneCamera == 0
&& clanCamera == 0
&& languageCamera == 0
&& spellFxCamera == 0
&& spellSpectacleMissing == 0
&& lawSignal > 0
@ -7669,6 +7689,7 @@ public static class AgentHarness
&& signalCamera == spectacleSpells.Length;
detail =
$"dialBad={dialBad} phenotypeCamera={phenotypeCamera} geneCamera={geneCamera} "
+ $"clanCamera={clanCamera} languageCamera={languageCamera} "
+ $"spellFxCamera={spellFxCamera} spellSpectacleMissing={spellSpectacleMissing} "
+ $"lawSignal={lawSignal} itemSignal={itemSignal} spectacleOk={signalCamera}";
break;

View file

@ -113,6 +113,12 @@ public static partial class EventCatalog
return false;
}
// Soft intent chatter - outcomes already covered by other feeds, or not story-worthy.
if (IsSoftDecisionNoise(s))
{
return false;
}
return HasToken(s, "war")
|| HasToken(s, "king")
|| HasToken(s, "leader")
@ -129,7 +135,6 @@ public static partial class EventCatalog
|| s.Contains("plot")
|| s.Contains("marry")
|| s.Contains("banish")
|| s.Contains("steal")
|| s.Contains("kill_unruly")
|| s.Contains("clan")
|| s.Contains("religion")
@ -137,18 +142,46 @@ public static partial class EventCatalog
|| s.Contains("baby_make")
|| s.Contains("have_child")
|| s.Contains("birth")
|| s.Contains("reproduction")
|| s.Contains("sexual_reproduction")
|| s.Contains("golden_brain")
|| s.Contains("make_skeleton")
|| s.Contains("soul_harvest")
|| s.Contains("possessed")
|| s.Contains("create_hive")
|| s.Contains("fireworks")
|| s.Contains("affect_dreams")
|| s.Contains("family_group")
|| s.Contains("take_city_item")
|| s.Contains("put_out_fire")
|| s.Contains("burn_tumors");
|| s.Contains("create_hive");
}
/// <summary>
/// Soft AI chatter that distracts the story camera. Outcomes (hatch, pack sticky, fires)
/// already have better feeds when they matter.
/// </summary>
private static bool IsSoftDecisionNoise(string s)
{
if (string.IsNullOrEmpty(s))
{
return true;
}
if (s.Contains("family_group")
|| s.Contains("affect_dreams")
|| s.Contains("fireworks")
|| s.Contains("put_out_fire")
|| s.Contains("burn_tumors")
|| s.Contains("asexual_reproduction")
|| s.Contains("take_city_item")
|| s.Contains("try_to_steal")
|| s.Contains("steal_money"))
{
return true;
}
// Army follow/join intent - keep only lead-to-attack.
if (s == "warrior_army_follow_leader"
|| s == "warrior_try_join_army_group")
{
return true;
}
return false;
}
/// <summary>

View file

@ -245,25 +245,8 @@ public static partial class EventCatalog
}
string s = id.ToLowerInvariant();
// High / mid-spectacle materials from live items library plus named relics.
// Leather/wood/copper/iron stay ambient B.
return s.Contains("legendary")
|| s.Contains("mythic")
|| s.Contains("mythril")
|| s.Contains("adamantine")
|| s.Contains("artifact")
|| s.Contains("relic")
|| s.Contains("divine")
|| s.Contains("demon")
|| s.Contains("dragon")
|| s.Contains("nuke")
|| s.Contains("excalibur")
|| s.Contains("wonder")
|| s.Contains("silver")
|| s.Contains("steel")
|| s.Contains("_bone")
|| s.StartsWith("bone_", StringComparison.Ordinal)
|| s.EndsWith("_bone", StringComparison.Ordinal);
// Only top-tier materials own the camera. Steel/silver/bone gear is soak noise.
return s.Contains("mythril") || s.Contains("adamantine");
}
private static void Ensure()
@ -533,23 +516,11 @@ public static partial class EventCatalog
}
string s = id.ToLowerInvariant();
return s.Contains("war")
|| s.Contains("death")
|| s.Contains("plague")
|| s.Contains("hunger")
|| s.Contains("rebell")
|| s.Contains("disaster")
|| s.Contains("angry")
|| s.Contains("cursed")
// God-law toggles are mostly UI spam. Keep era-defining / crisis switches only.
return s.Contains("cursed")
|| s.Contains("forever_")
|| s.Contains("tumor")
|| s.Contains("mutant")
|| s.Contains("evolution")
|| s.Contains("old_age")
|| s.Contains("kingdom_expansion")
|| s.Contains("border_steal")
|| s.Contains("civ_army")
|| s.Contains("exploding");
|| s.Contains("disaster")
|| s.Contains("rebell");
}
public static IEnumerable<string> AuthoredIds
@ -658,6 +629,38 @@ public static partial class EventCatalog
|| s.Contains("blaster");
}
/// <summary>
/// Culture camera: hard politics only. Lovers / layouts / craft skins are soak noise.
/// </summary>
private static bool IsDramaticCultureTrait(string id)
{
if (string.IsNullOrEmpty(id))
{
return false;
}
string s = id.ToLowerInvariant();
if (s.Contains("lover")
|| s.Contains("city_layout")
|| s.StartsWith("craft_", StringComparison.Ordinal)
|| s.Contains("ethno")
|| s.Contains("reading")
|| s.Contains("statue")
|| s.Contains("tower")
|| s.Contains("gossip"))
{
return false;
}
return s.Contains("conscript")
|| s.Contains("xenophob")
|| s.Contains("expans")
|| s.Contains("join_or_die")
|| s.Contains("happiness_from_war")
|| s.Contains("warriors_ascension")
|| s.Contains("shattered_crown");
}
public static class CultureTrait
{
private static readonly Dictionary<string, DiscreteEventEntry> Entries =
@ -689,7 +692,7 @@ public static partial class EventCatalog
d.AmbientStrength,
signalIds: null,
d.SignalStrength,
signalPredicate: IsDramaticMetaTrait,
signalPredicate: IsDramaticCultureTrait,
ambientCreatesInterest: d.AmbientCreatesInterest);
}
@ -784,6 +787,7 @@ public static partial class EventCatalog
Entries.Clear();
_appliedGeneration = EventCatalogConfig.Generation;
// Clan blood / vein traits are gene-like soak noise - all B.
LibraryCatalogDefaults d = LibOr("clanTrait", 32f, 72f, "Clan", "{a} clan gains {id}", false);
LiveLibraryInterest.EnsureSeeded(
Entries,
@ -793,7 +797,6 @@ public static partial class EventCatalog
d.AmbientStrength,
signalIds: null,
d.SignalStrength,
signalPredicate: IsDramaticMetaTrait,
ambientCreatesInterest: d.AmbientCreatesInterest);
}
@ -836,6 +839,7 @@ public static partial class EventCatalog
Entries.Clear();
_appliedGeneration = EventCatalogConfig.Generation;
// Language flavor traits never own the camera.
LibraryCatalogDefaults d = LibOr("languageTrait", 30f, 68f, "Language", "{a} tongue gains {id}", false);
LiveLibraryInterest.EnsureSeeded(
Entries,
@ -845,7 +849,6 @@ public static partial class EventCatalog
d.AmbientStrength,
signalIds: null,
d.SignalStrength,
signalPredicate: IsDramaticMetaTrait,
ambientCreatesInterest: d.AmbientCreatesInterest);
}

View file

@ -1,7 +1,7 @@
{
"name": "IdleSpectator",
"author": "dazed",
"version": "0.28.40",
"version": "0.28.41",
"description": "AFK Idle Spectator (I) + Lore (L). Killer button retargets dossier to the killer.",
"GUID": "com.dazed.idlespectator"
}

View file

@ -62,28 +62,30 @@ Seeded via `LiveLibraryInterest.EnsureSeeded` + JSON `libraries.*` dials.
| Domain | Live | Camera A | Dial label template | Notes | Priority |
|--------|-----:|---------:|---------------------|-------|----------|
| decisions | 127 | **33** | `{a} decides to {action}` | Signal tokens + authored phrases; fluff + intent-only genesis (`try_new_plot`, founding/claim) B; dump `.harness/camera-a-inventory.tsv` | P3 variety 0.28.32 |
| decisions | 127 | **16** politics/spectacle | `{a} decides to {action}` | Soft pack/fireworks/asexual/steal demoted B; fluff + intent-genesis B | noise pass 0.28.41 |
| spells | 12 | 6 | `{a} casts {id}` | Signal spectacle only; FX spells B | P3 |
| powers | 339 | **41** | `God power: {id}` | ambient CI=false; widened spectacle + creature powers; UI `_edit` B | P3 expanded 0.28.27 |
| items | 111 | **42** | `{a} gains {id}` | Signal mythril/adamantine + silver/steel/bone; leather/iron B | P3 expanded 0.28.27 |
| items | 111 | **20** mythril/adamantine | `{a} gains {id}` | steel/silver/bone demoted B | noise pass 0.28.41 |
| genes | 47 | **0** | `{a} gains gene {id}` | all B (gain/remove tips not camera-worthy) | demoted |
| phenotypes | 52 | 0 | `{a} shows {id}` | all B | P3 |
| world_laws | 49 | **17** | `Law changed: {id}` | dramatic + forever_/cursed/army/expansion… | P3 expanded 0.28.27 |
| world_laws | 49 | **7** crisis | `Law changed: {id}` | hunger/army/expansion/UI toggles B | noise pass 0.28.41 |
| subspecies_traits | 204 | **21** | `{a} evolves {id}` | dramatic + mutation/death/blood/horror | P3 expanded 0.28.27 |
| biomes | 29 | 0 | `Biome shifts: {id}` | ambient CI=false | P3 stay B |
| culture_traits | 78 | **27** | `{a} culture gains {id}` | dramatic + conscript/necro/craft weapons… | P3 expanded 0.28.27 |
| culture_traits | 78 | **8** politics | `{a} culture gains {id}` | lovers/layout/craft B; conscript/xenophobe/expansion A | noise pass 0.28.41 |
| religion_traits | 40 | 6 | `{a} faith gains {id}` | dramatic heuristic | P3 |
| clan_traits | 29 | 13 | `{a} clan gains {id}` | dramatic heuristic | P3 |
| language_traits | 26 | 2 | `{a} tongue gains {id}` | dramatic heuristic | P3 |
| clan_traits | 29 | **0** | `{a} clan gains {id}` | all B (blood/vein soak) | noise pass 0.28.41 |
| language_traits | 26 | **0** | `{a} tongue gains {id}` | all B | noise pass 0.28.41 |
**Library+decision Layer A inventory (0.28.32):** live dump total **215 A / 928 B** across 13 domains (`camera_a_inventory_ok`). Decisions **33 A**.
**Library+decision Layer A inventory (0.28.41):** live dump total **125 A / 1018 B** across 13 domains (`camera_a_inventory_ok`). Decisions **16 A**.
### Decision camera classes (0.28.32)
### Decision camera classes (0.28.41)
Allow-token Signal after fluff + intent-genesis filter (not 127 ambient).
Allow-token Signal after fluff + intent-genesis + soft-noise filter (not 127 ambient).
Authored action phrases required for every A id (`domain_event_audit` decision_prose).
Classes: reproduction/pack (`reproduction`, `family_group`), army/war/politics (existing), spectacle/dark (`golden_brain`, `make_skeleton`, `soul_harvest`, `possessed`), civic soft (`put_out_fire`, `burn_tumors`, `fireworks`, `affect_dreams`), hive (`create_hive`).
Classes: sexual reproduction / lover / child, army/war/politics, spectacle/dark (`golden_brain`, `make_skeleton`, `soul_harvest`, `possessed`), hive (`create_hive`).
Stay B (soft noise 0.28.41): `family_group`, `fireworks`, `affect_dreams`, `put_out_fire`, `burn_tumors`, `asexual_reproduction`, steal/take city item, `warrior_army_follow_leader`, `warrior_try_join_army_group`.
Stay B (intent-only; camera on outcome feeds): `try_new_plot*`, `try_to_start_new_civilization*`, `build_civ_city*`, `*city_foundation*`, `claim_land*` → real tips from `PlotInterestFeed` / `MetaEventPatches` (`new_city` 86, `new_kingdom` 92).

View file

@ -9,21 +9,21 @@ traits 116 authored 0 116 wired authored_labels P3
disasters 17 authored 0 via_worldlog wired authored_labels P3 disaster_war_audit PASS
war_types_library 5 authored 0 dials wired authored_labels P3
relationship 11 authored_discrete 0 11 wired authored_labels P3 no AssetManager lib
decisions_library 127 live+dial 0 33 wired action_phrases P3 intent genesis demoted 0.28.32; camera-a-inventory.tsv
decisions_library 127 live+dial 0 16 wired action_phrases P3 soft noise demoted 0.28.41; camera-a-inventory.tsv
spells 12 live+dial 0 6 wired display_names P3 Signal spectacle; 6 FX B
powers 339 live+dial 0 41 wired display_names P3 Signal widened 0.28.27; ambient CI=false
items 111 live+dial 0 42 wired gains_verb P3 Signal mythril/adamantine/silver/steel/bone
items 111 live+dial 0 20 wired gains_verb P3 Signal mythril/adamantine gear only
genes 47 live+dial 0 0 wired display_names P3 all B; gain/remove not camera
phenotypes 52 live+dial 0 0 wired display_names P3 all B
world_laws_library 49 live+dial 0 17 wired display_names P3 dramatic + forever_/cursed/army…
world_laws_library 49 live+dial 0 7 wired display_names P3 cursed/forever_/disaster/rebell only
subspecies_traits 204 live+dial 0 21 wired display_names P3 dramatic + mutation/death/blood
biome_library 29 live+dial 0 0 wired display_names P3 ambient CI=false
culture_traits 78 live+dial 0 27 wired display_names P3 dramatic widened 0.28.27
culture_traits 78 live+dial 0 8 wired display_names P3 politics-only 0.28.41
religion_traits 40 live+dial 0 6 wired display_names P3
clan_traits 29 live+dial 0 13 wired display_names P3
language_traits 26 live+dial 0 2 wired display_names P3
clan_traits 29 live+dial 0 0 wired display_names P3 all B 0.28.41
language_traits 26 live+dial 0 0 wired display_names P3 all B 0.28.41
buildings 618 patch_only n/a consume_and_civ_complete partial EventReason.BuildingEat_BuildingComplete P3 civ complete/wonder A; destroy demoted B
boats n/a patch_only n/a trade_unload wired EventReason.Boat P3 load skipped
combat n/a csharp_policy n/a pair_keys wired EventReason.Fight P3 soft Duel sticky 0.28.28; hard sticky Skirmish+/notable-pair
camera_a_inventory 1143 harness 0 215 wired camera-a-inventory.tsv P3 A=215 B=928 domains=13; gate camera_a_inventory_ok
camera_a_inventory 1143 harness 0 125 wired camera-a-inventory.tsv P3 A=125 B=1018 domains=13; gate camera_a_inventory_ok
mutation_gaps 0 harness 0 n/a gaps_empty n/a P3 managers=57 libraryAssets=2893

1 library_or_hook live_count catalog_mode missing_ids camera_a wire_status tip_quality priority notes
9 disasters 17 authored 0 via_worldlog wired authored_labels P3 disaster_war_audit PASS
10 war_types_library 5 authored 0 dials wired authored_labels P3
11 relationship 11 authored_discrete 0 11 wired authored_labels P3 no AssetManager lib
12 decisions_library 127 live+dial 0 33 16 wired action_phrases P3 intent genesis demoted 0.28.32; camera-a-inventory.tsv soft noise demoted 0.28.41; camera-a-inventory.tsv
13 spells 12 live+dial 0 6 wired display_names P3 Signal spectacle; 6 FX B
14 powers 339 live+dial 0 41 wired display_names P3 Signal widened 0.28.27; ambient CI=false
15 items 111 live+dial 0 42 20 wired gains_verb P3 Signal mythril/adamantine/silver/steel/bone Signal mythril/adamantine gear only
16 genes 47 live+dial 0 0 wired display_names P3 all B; gain/remove not camera
17 phenotypes 52 live+dial 0 0 wired display_names P3 all B
18 world_laws_library 49 live+dial 0 17 7 wired display_names P3 dramatic + forever_/cursed/army… cursed/forever_/disaster/rebell only
19 subspecies_traits 204 live+dial 0 21 wired display_names P3 dramatic + mutation/death/blood
20 biome_library 29 live+dial 0 0 wired display_names P3 ambient CI=false
21 culture_traits 78 live+dial 0 27 8 wired display_names P3 dramatic widened 0.28.27 politics-only 0.28.41
22 religion_traits 40 live+dial 0 6 wired display_names P3
23 clan_traits 29 live+dial 0 13 0 wired display_names P3 all B 0.28.41
24 language_traits 26 live+dial 0 2 0 wired display_names P3 all B 0.28.41
25 buildings 618 patch_only n/a consume_and_civ_complete partial EventReason.BuildingEat_BuildingComplete P3 civ complete/wonder A; destroy demoted B
26 boats n/a patch_only n/a trade_unload wired EventReason.Boat P3 load skipped
27 combat n/a csharp_policy n/a pair_keys wired EventReason.Fight P3 soft Duel sticky 0.28.28; hard sticky Skirmish+/notable-pair
28 camera_a_inventory 1143 harness 0 215 125 wired camera-a-inventory.tsv P3 A=215 B=928 domains=13; gate camera_a_inventory_ok A=125 B=1018 domains=13; gate camera_a_inventory_ok
29 mutation_gaps 0 harness 0 n/a gaps_empty n/a P3 managers=57 libraryAssets=2893

View file

@ -52,11 +52,11 @@ Only true brief FX, cooldowns, civic Aggregates, and god-tool / biome spam stay
| Relationship | 11 | all interesting discrete |
| Plot / Era / War / Book | 28 / 11 / 5 / 12 | all A |
| Trait | 116 | all CI |
| Decision | 127 live / 37 prose overlays | **37** camera-interesting (0.28.27) |
| Spell / Item / Gene / Phenotype / WorldLaw / SubspeciesTrait | live | Signal-only A: spell 6 / item 42 / gene 0 / phenotype 0 / law 17 / subsp 21 |
| Culture / Religion / Clan / LanguageTrait | live dials | Signal dramatic: 27 / 6 / 13 / 2 |
| Decision | 127 live / prose overlays | **16** camera-interesting (0.28.41 soft demote) |
| Spell / Item / Gene / Phenotype / WorldLaw / SubspeciesTrait | live | Signal-only A: spell 6 / item mythril+adamantine 20 / gene 0 / phenotype 0 / law crisis 7 / subsp 21 |
| Culture / Religion / Clan / LanguageTrait | live dials | Culture politics 8; religion 6; clan 0; language 0 |
| Power / Biome | live | Power Signal **41**; biome 0 (ambient CI=false) |
| Library+decision inventory dump | 1143 rows | **219 A / 924 B** (`.harness/camera-a-inventory.tsv`) |
| Library+decision inventory dump | 1143 rows | **125 A / 1018 B** (`.harness/camera-a-inventory.tsv`) |
| Building / Boat | none | destroy/consume/trade/unload; damage/load skipped |
## Wired hooks (major)