PPTX icon resolver: 50+ proactive aliases + menu-mode 'no code edits' rule

Diego flagged two patterns from the Codex session:

1. Aliases for natural-language slugs were missing — Codex authored
   ``type: refreshable_clone`` and ``type: oci_goldengate`` and the
   resolver returned None for both. Beyond fixing those two, expand
   the table proactively: 50+ slugs an SA / agent might naturally
   reach for (atp, alb, nlb, apigw, lambda, kms, secret, kafka,
   alarm, email, identity, iam, iac, terraform, oac, oic, language /
   speech / vision, rpc / lpg / cpe, health_check, tags, etc.) all
   mapped to canonical icon entries that exist in
   kb/diagram/oci-pptx-icons-index.json.

2. Codex was editing tools/oci_deck_gen.py and the deck-spec while
   fulfilling a menu-driven option-2 request — going off the
   procedure to "fix" perceived bugs in the renderer. New rule in
   SKILL.md § What You Do NOT Do: when the user is in menu mode
   (options 1–14), the agent USES the existing tools, never modifies
   them. Tool gaps (missing aliases, broken paths) get surfaced as
   end-of-reply follow-ups for a separate developer-mode session.
   Two narrow exceptions kept: kb/field-findings/tracker.yaml via
   option 11, and writing customer spec/output YAML under examples/.

Codex copy auto-synced via the pre-commit hook.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
root
2026-04-25 23:18:22 -03:00
parent 0b6ca3b776
commit 82d09aeee6
3 changed files with 58 additions and 4 deletions

View File

@@ -133,6 +133,62 @@ TYPE_TO_ICON = {
"mysql_heatwave": ["mysql_heatwave", "mysql_database_system", "mysql"],
"heatwave": ["mysql_heatwave", "mysql_database_system", "mysql"],
"mysql_database_service": ["mysql_heatwave", "mysql_database_system", "mysql"],
"autonomous_database": ["oracle_autonomous_database", "adb_d"],
"oracle_autonomous_database": ["oracle_autonomous_database", "adb_d"],
"refreshable_clone": ["oracle_autonomous_database", "adb_d"],
"adb_clone": ["oracle_autonomous_database", "adb_d"],
"oci_goldengate": ["goldengate"],
"ogg": ["goldengate"],
"dynamic_routing_gateway": ["drg"],
# Proactive aliases — natural-language slugs an SA / agent might
# reach for, all mapped to the canonical icon. Adding ahead of
# demand so a freshly-authored spec resolves on first try.
"atp": ["atp_d"],
"alb": ["load_balancer", "public_load_balancer"],
"nlb": ["load_balancer", "public_load_balancer"],
"apigw": ["api_gateway"],
"lambda": ["oci_functions", "functions"],
"kms": ["vault"],
"secret": ["vault"],
"secrets_manager": ["vault"],
"kafka": ["oci_streaming", "streaming"],
"alarm": ["alarms", "monitoring"],
"alarms": ["alarms", "monitoring"],
"email": ["email_delivery"],
"email_delivery": ["email_delivery"],
"identity": ["oracle_identity"],
"identity_domains": ["oracle_identity"],
"iam": ["oracle_identity"],
"user_group": ["user_group"],
"group": ["user_group"],
"iac": ["resource_manager"],
"terraform": ["resource_manager"],
"oac": ["analytics"],
"oracle_analytics_cloud": ["analytics"],
"oic": ["integration", "oci_data_integration"],
"oracle_integration_cloud": ["integration"],
"process_automation": ["oci_process_automation"],
"oracle_process_automation": ["oci_process_automation"],
"language": ["oci_language"],
"ai_language": ["oci_language"],
"speech": ["oci_speech"],
"ai_speech": ["oci_speech"],
"vision": ["oci_vision"],
"ai_vision": ["oci_vision"],
"rpc": ["remote_peering"],
"remote_peering_connection": ["remote_peering"],
"remote_peering": ["remote_peering"],
"lpg": ["local_peering_gateway"],
"local_peering_gateway": ["local_peering_gateway"],
"local_peering": ["local_peering_gateway"],
"health_check": ["health_checks"],
"health_checks": ["health_checks"],
"cpe": ["customer_premises_equipment"],
"customer_premises_equipment": ["customer_premises_equipment"],
"tag": ["tag_namespace"],
"tags": ["tag_namespace"],
"compartment": ["compartment"],
"compartments": ["compartment"],
}
ICON_KEYWORD_HINTS = {