Skills structs-reconnaissance
Gathers intelligence on players, guilds, planets, and the galaxy in Structs. Use when scouting enemy players, checking planet defenses, monitoring fleet movements, assessing guild strength, surveying the galaxy map, gathering intel before combat or raids, or updating competitive intelligence. Persists findings to memory/intel/.
install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/abstrct/structs-reconnaissance" ~/.claude/skills/clawdbot-skills-structs-reconnaissance && rm -rf "$T"
manifest:
skills/abstrct/structs-reconnaissance/SKILL.mdsource content
Structs Reconnaissance
Procedure
- Query entities — All via
:structsd query structs [subcommand] [args]- Self:
— resolves your address to a player ID. A result ofaddress [your-address]
means no player exists for that address.1-0 - Players:
,player [id]player-all - Planets:
,planet [id]
,planet-all
,planet-all-by-player [player-id]
,planet-attribute [planet-id] [type]planet-attribute-all - Structs:
,struct [id]
,struct-all
,struct-attribute [id] [type]
,struct-type [id]struct-type-all - Fleets:
,fleet [id]
,fleet-allfleet-by-index [index] - Guilds:
,guild [id]
,guild-all
,guild-membership-application [id]guild-membership-application-all - Energy:
,reactor [id]
,reactor-all
,infusion [id]
,infusion-all
,infusion-all-by-destination [dest-id]
,provider [id]
,provider-all
,agreement [id]
,agreement-allagreement-all-by-provider [provider-id] - Power:
,allocation [id]
,allocation-all
,allocation-all-by-source [source-id]
,allocation-all-by-destination [dest-id]
,substation [id]substation-all - Grid:
,grid [id]grid-all - Block:
block-height
- Self:
- Assess targets — For players: structs, power capacity, fleet status (onStation = can build; away = raiding). For planets: ore remaining, defense structs, shield. For guilds: members, Central Bank status.
- Identify vulnerabilities — Unrefined ore stockpile, power near capacity, undefended planet, fleet away (raiding).
- Persist intelligence — After gathering, update:
- memory/intel/players/{player-id}.md — Player dossier (profile, behavior, vulnerabilities, relationship)
- memory/intel/guilds/{guild-id}.md — Guild profile (members, bank status, strengths, weaknesses)
- memory/intel/territory.md — Planet ownership, ore, defense levels
- memory/intel/threats.md — Threat board ranked by severity
Commands Reference
| Entity | Query Command |
|---|---|
| Address → Player | (returns player ID; = nonexistent) |
| Player | , |
| Planet | , , |
| Planet attribute | , |
| Struct | , , |
| Struct type | , |
| Fleet | , , |
| Guild | , |
| Membership app | , |
| Reactor | , |
| Infusion | , , |
| Provider | , |
| Agreement | , , |
| Allocation | , , , |
| Substation | , |
| Grid | , |
| Block height | |
Verification
- Re-query entity after action to confirm state change.
- Cross-reference: player → planet → struct → fleet for full picture.
- Block height confirms chain sync.
Error Handling
- Entity not found: ID may be invalid or entity destroyed. Try
variants to discover current IDs.-all - Stale data: Query
; re-run queries if chain has progressed.block-height - Missing intel files: Create
,memory/intel/players/
if absent. Follow formats in memory/intel/README.memory/intel/guilds/
Intelligence Persistence Loop
- Run reconnaissance queries for target(s).
- Parse results: owner, structs, power, shield, fleet status, guild.
- Write/update memory/intel/players/, memory/intel/guilds/ per README formats.
- Update memory/intel/territory.md with planet ownership table.
- Update memory/intel/threats.md with ranked threats and response notes.
- Include "Last Updated" date in each file.
PostgreSQL Queries (Advanced)
If the Guild Stack is running locally, all reconnaissance queries can be done in < 1 second via PostgreSQL instead of CLI. This is essential for combat automation, real-time threat monitoring, and galaxy-wide scouting.
Example -- find all players with stealable ore, ranked by amount:
SELECT p.id, p.guild_id, COALESCE(g_ore.val, 0) as ore FROM structs.player p JOIN structs.grid g_ore ON g_ore.object_id = p.id AND g_ore.attribute_type = 'ore' WHERE g_ore.val > 0 ORDER BY g_ore.val DESC;
Example -- enemy fleet composition at a planet:
SELECT s.id, st.class_abbreviation, s.operating_ambit, st.unit_defenses FROM structs.struct s JOIN structs.struct_type st ON st.id = s.type JOIN structs.fleet f ON f.id = s.location_id WHERE f.location_id = '2-105' AND s.is_destroyed = false AND s.location_type = 'fleet';
Important: The
structs.grid table is key-value, not columnar. See knowledge/infrastructure/database-schema for the grid pattern and more query examples.
For setup: structs-guild-stack skill
See Also
- memory/intel/README — Dossier formats, territory map, threat board
- awareness/threat-detection — Using intel for threats
- awareness/opportunity-identification — Spotting opportunities
- knowledge/mechanics/combat — Raid mechanics, fleet status
- playbooks/meta/reading-opponents — Soul type identification
- structs-guild-stack skill — Guild Stack setup for PG access
- knowledge/infrastructure/database-schema — Full PG schema and query patterns