🦾 ملاحظات د. وائل

📁 00-الترسانة
00-الفهرس
📁 00-الترسانة/الذاكرة-اليومية
2026-04-022026-04-172026-04-22-cost-optimization2026-04-22-oauth-setup2026-04-222026-04-23-skywork-apikey2026-04-24-deepseek-v42026-04-24-event-logs2026-04-24-valve-types2026-04-25-animate-scenes2026-04-25-crypto-replacement2026-04-25-jihan-video2026-04-25-windows-tuneup2026-04-252026-04-26-server-upgrade2026-04-26-windows-tuneup2026-04-27-crypto-report2026-04-27-salary-raise-request2026-04-27-turkey-investment2026-04-28-02342026-04-28-02442026-04-28-final-upgrade2026-04-28-morning-greeting2026-04-28-oauth-credentials2026-04-28-slow-replies2026-04-30-bitcoin-turkey-outlook2026-04-30-deepseek-setup2026-04-30-kiloclaw-backup2026-05-01-camoufox-removal2026-05-01-green-square2026-05-01-identity-reset2026-05-01-name-mixup2026-05-01-new-session2026-05-01-print-spooler2026-05-01-triangle-puzzle2026-05-02-event-analysis2026-05-02-halal-check2026-05-02-laplace-inverse2026-05-02-radius-puzzle2026-05-02-rainforest-alliance2026-05-02-skywork-integration2026-05-02-wsa-shutdown2026-05-02-wsa-update2026-05-03-tashbeeh-lesson2026-05-03-wsa-crash2026-05-032026-05-04-idle-timeout2026-05-04-wsa-diagnostics2026-05-042026-05-06-capabilities-review2026-05-06-storage-cleanup2026-05-06-wsa-fix2026-05-062026-05-072026-05-09-mega-session2026-05-092026-05-102026-05-112026-05-122026-05-132026-05-142026-05-152026-05-162026-05-172026-05-182026-05-192026-05-202026-05-212026-05-222026-05-232026-05-242026-05-252026-05-262026-05-272026-05-312026-06-012026-06-022026-06-032026-06-042026-06-052026-06-062026-06-072026-06-08-obsidian-syncthing-setup2026-06-082026-06-092026-06-102026-06-11-mcp-tools-fix2026-06-112026-06-122026-06-132026-06-142026-06-152026-06-162026-06-172026-06-182026-06-19-telegram-copy-fix2026-06-19-uncensored-models-study2026-06-202026-06-212026-06-222026-06-232026-06-242026-06-252026-06-262026-06-272026-06-282026-06-292026-06-302026-07-012026-07-022026-07-032026-07-042026-07-052026-07-062026-07-072026-07-082026-07-092026-07-102026-07-112026-07-122026-07-132026-07-142026-07-152026-07-162026-07-172026-07-182026-07-192026-07-202026-07-212026-07-222026-07-23-local-image-vpn-fix2026-07-232026-07-25_MEMORY-curated
📁 00-الترسانة/القواعد-الذهبية
DECISION_MATRIXECONOMIC_ARSENAL_MATRIXENGINEERING_ARSENAL_MATRIXENGINEERING_DISCIPLINES_MATRIXGOLDEN_PROMPTLEGAL_ARSENAL_MATRIXMEDICAL_ARSENAL_MATRIXSCIENCE_GRAPHICAL_AUDIO_MATRIX
📁 00-الترسانة/المرجعية
AGENTSAGREEMENTSCAPABILITIESDECISION_MATRIXDOMAIN_MODEL_RANKINGSGOLDEN_RULESGOLDEN_RULES_COREIDENTITYMEMORYMISTAKES_LEDGERMISTAKES_PATTERNSMODEL_REGISTRYSOULSTRATEGIESTOOLSUSER
📁 00-الترسانة/المهارات
1password3d-arsenal3d-generationacademic-researchacademic-shieldaccounting-advancedaccuracy-gateai-investment-analyzerai-web-automationalphafoldarabic-tashkeelaudd-recognizeautograderblogwatcherbridge-tunnel-enginebriefingcartesiacitation-validatorcivil-design-routercivil-methodology-enginecivil-networksclaims-engineeringcode-refactorercognee-memorycomputer-use-pluscomputer-useconstruction-assistantconstructioncontract-reviewcourse-pipelinecourtlistener-researchcrypto-marketcurriculum-ragcybersecurity-edudata-charts-visualizationdesign-to-bimdocument-ocr-arsenaleconomic-arsenaleconomic-calendar-fetcherelite-councilengineering-codesengineering-design-stackengineering-legal-economicengineering-ocr-blueprintsengineering-pack-2026-06-21entertainment-arsenalevolinkexif-geolocationfable-orchestratorfirecrawlforecasting-techniquesforesight-enginefree-llm-resourcesfrontier-videogemini-embedding-2gemini-live-translategenius-loopgenspark-agentgeospatial-arsenalgh-issuesgifgrepgithubgoggraph-memoryhive-vlmhyperframesidentity-charterin-depth-researchinvestment-analystkuwait-datalangfuselecture-builderlegal-advisorlegal-draftinglegal-encyclopedialegal-ragliberation-routerlive-translatormanus-agentmanusmarket-newsmath-foundationmathpix-ocrmcportermedia-editing-arsenalmedical-arsenalmedical-triagemicrosoft365minimax-music-2-6multi-discipline-engineeringmulti-model-consensusnotebooklm-researchocr-advancedollama-localonedriveopenai-realtime-translateopenclaw-memory-hygienep6-ai-plannerpaperclippascal-editorpdf-summarizerpika-videoplanet-satelliteportfolio-watcherproject-lifecycle-enginequantity-takeoff-enginequantum-computingrag-knowledge-basereal-estate-skillrealtime-voicereviewer-agentscience-arsenalself-improving-agentsentinel-hubsession-logsskywork-agentsmart-code-routersonjj-apistealth-browserstocks-enhancedstocksstructural-advancedsuno-musicsynergy-war-roomtavily-searchtext-humanizertmuxtradingview-webhookstranslateturkey-real-estatetwilioutility-identityv0-alternativesvapivercelvideo-framesvideo-gps-trackerweb-scraperweb-searchwhisperxwolfram-alphaxurl
📁 04-AI-Coding
Graphify-Code-MapsGraphify-MCP-Laptop-Setup
📁 graphify-graphs/arsenal-scripts
GRAPH_REPORT
📁 graphify-graphs/arsenal-scripts/obsidian
(M-038L5 fix 2026-06-01) R2 keys are MIXED some stored under 'kiloclaw' (ARSENAL_SRCAntigravity Managed Agent (Linux sandbox auto-provisioned). SYNC only (backgAttributed Question Answering (with citations).Calculate MD5 hash of file.Capability failures seen = min_count - candidate for a hardening skill.Check if path should be skipped.Computer Use (UI automation reasoning).Count replay_invalid events whose log line timestamp is within WINDOW_S.Create and upload a workspace backup tarball.Create authenticated R2 client.Deep Research agent via Interactions API. Variants - preview →Download a file from R2.ENG_SECTIONEPOCHSEmbodied Reasoning for robotics tasks.Empire vs Markowitz fundsExtract each ranked domain heading + its last-updated date + staleness.FLUTTER_HOMEForce-heal ONLY a genuinely-abandoned session (stale lock = engine dead). MGemini 2.5 Flash — رخيص. فشل = None (لا انهيار).Generate a presigned download URL (default 7 days = 604800s).HEAD a single object print 'OK size_bytes last_modified' or 'MISSING'.HOMEImage generation. Supported models - imagen-4.0-fast-generate-001 (JAVA_HOMEL1_healthchecks_ping.sh scriptL1_healthchecks_ping.shL1_pinger_daemon.pyL4_integrity_check.sh scriptL4_integrity_check.shL5_backup_verify.sh scriptL5_backup_verify.shL6_canary_check.sh scriptL6_canary_check.shL7_version_watchdog.sh scriptL7_version_watchdog.shLD_LIBRARY_PATHList objects in bucket.Most-recently-modified .jsonl that currently holds a .lock = the live session.Most-recently-modified locked .jsonl = the livestuck session.Music generation via generateContent (NOT predict). Models - lyria-3-NOTE happyhorse.py takes --image-url (URL) + --prompt, prints JSON with videoNPM_TOOLSOpen capability requests = explicit skill-gap signals.PATHPATH_1PATH_2PATH_4PATH_5Path_3Path_7Poll a background Interactions API job (e.g. Deep Research).Poll a long-running operation (Veo) until done.Re-inject the dropped user message into main via a one-shot cron systemEvent.Remove backups older than N days.Remove signature fields from one thinking block. Returns (block, changed).Return the most recent human user message text from the session.SECTIONSSL_CERT_DIRSSL_CERT_FILESSL_CERT_FILE_1SSL_CERT_FILE_2Smart Gemini call with KW→US fallback. Returns {ok bool, region_usedSource env.sh and grab the key.TG_CODETG_TITLETS()_3TUNNEL_TOKENTZText embeddings. Models - gemini-embedding-001 (stable, 3072-Text generation via new Interactions API (recommended for new code).Text-to-speech via generateContent. Models - gemini-2.5-flash-previewTextchat generation via generateContent.USDTRY rate from TCMB (Turkish Central Bank)Upload a single file to R2.Video generation (long-running operation). Returns operation name — poll witWeighted portfolio return + USD-adjusted_COMMUNITY_Community 0_COMMUNITY_Community 1_COMMUNITY_Community 10_COMMUNITY_Community 100_COMMUNITY_Community 101_COMMUNITY_Community 102_COMMUNITY_Community 103_COMMUNITY_Community 104_COMMUNITY_Community 105_COMMUNITY_Community 106_COMMUNITY_Community 107_COMMUNITY_Community 108_COMMUNITY_Community 109_COMMUNITY_Community 11_COMMUNITY_Community 110_COMMUNITY_Community 111_COMMUNITY_Community 112_COMMUNITY_Community 113_COMMUNITY_Community 114_COMMUNITY_Community 115_COMMUNITY_Community 116_COMMUNITY_Community 117_COMMUNITY_Community 118_COMMUNITY_Community 119_COMMUNITY_Community 12_COMMUNITY_Community 120_COMMUNITY_Community 121_COMMUNITY_Community 122_COMMUNITY_Community 123_COMMUNITY_Community 124_COMMUNITY_Community 125_COMMUNITY_Community 126_COMMUNITY_Community 127_COMMUNITY_Community 128_COMMUNITY_Community 129_COMMUNITY_Community 13_COMMUNITY_Community 130_COMMUNITY_Community 131_COMMUNITY_Community 132_COMMUNITY_Community 133_COMMUNITY_Community 134_COMMUNITY_Community 135_COMMUNITY_Community 136_COMMUNITY_Community 137_COMMUNITY_Community 138_COMMUNITY_Community 139_COMMUNITY_Community 14_COMMUNITY_Community 140_COMMUNITY_Community 141_COMMUNITY_Community 142_COMMUNITY_Community 143_COMMUNITY_Community 144_COMMUNITY_Community 145_COMMUNITY_Community 146_COMMUNITY_Community 147_COMMUNITY_Community 148_COMMUNITY_Community 149_COMMUNITY_Community 15_COMMUNITY_Community 150_COMMUNITY_Community 151_COMMUNITY_Community 152_COMMUNITY_Community 153_COMMUNITY_Community 154_COMMUNITY_Community 155_COMMUNITY_Community 16_COMMUNITY_Community 17_COMMUNITY_Community 18_COMMUNITY_Community 19_COMMUNITY_Community 2_COMMUNITY_Community 20_COMMUNITY_Community 21_COMMUNITY_Community 22_COMMUNITY_Community 23_COMMUNITY_Community 24_COMMUNITY_Community 25_COMMUNITY_Community 26_COMMUNITY_Community 27_COMMUNITY_Community 28_COMMUNITY_Community 29_COMMUNITY_Community 3_COMMUNITY_Community 30_COMMUNITY_Community 31_COMMUNITY_Community 32_COMMUNITY_Community 33_COMMUNITY_Community 34_COMMUNITY_Community 35_COMMUNITY_Community 36_COMMUNITY_Community 37_COMMUNITY_Community 38_COMMUNITY_Community 39_COMMUNITY_Community 4_COMMUNITY_Community 40_COMMUNITY_Community 41_COMMUNITY_Community 42_COMMUNITY_Community 43_COMMUNITY_Community 44_COMMUNITY_Community 45_COMMUNITY_Community 46_COMMUNITY_Community 47_COMMUNITY_Community 48_COMMUNITY_Community 49_COMMUNITY_Community 5_COMMUNITY_Community 50_COMMUNITY_Community 51_COMMUNITY_Community 52_COMMUNITY_Community 53_COMMUNITY_Community 54_COMMUNITY_Community 55_COMMUNITY_Community 56_COMMUNITY_Community 57_COMMUNITY_Community 58_COMMUNITY_Community 59_COMMUNITY_Community 6_COMMUNITY_Community 60_COMMUNITY_Community 61_COMMUNITY_Community 62_COMMUNITY_Community 63_COMMUNITY_Community 64_COMMUNITY_Community 65_COMMUNITY_Community 66_COMMUNITY_Community 67_COMMUNITY_Community 68_COMMUNITY_Community 69_COMMUNITY_Community 7_COMMUNITY_Community 70_COMMUNITY_Community 71_COMMUNITY_Community 72_COMMUNITY_Community 73_COMMUNITY_Community 74_COMMUNITY_Community 75_COMMUNITY_Community 76_COMMUNITY_Community 77_COMMUNITY_Community 78_COMMUNITY_Community 79_COMMUNITY_Community 8_COMMUNITY_Community 80_COMMUNITY_Community 81_COMMUNITY_Community 82_COMMUNITY_Community 83_COMMUNITY_Community 84_COMMUNITY_Community 85_COMMUNITY_Community 86_COMMUNITY_Community 87_COMMUNITY_Community 88_COMMUNITY_Community 89_COMMUNITY_Community 9_COMMUNITY_Community 90_COMMUNITY_Community 91_COMMUNITY_Community 92_COMMUNITY_Community 93_COMMUNITY_Community 94_COMMUNITY_Community 95_COMMUNITY_Community 96_COMMUNITY_Community 97_COMMUNITY_Community 98_COMMUNITY_Community 99_debounce_ok()_deliver()_dl()_http()_http()_1_is_us_primary()_key()_pcm_to_mp3()_point_line()_points()_request()_resolve_existing_key()_resolve_id()_run()_run_healer()_today()academic_model_gate.sh scriptacademic_model_gate.shacademic_path_healthcheck.sh scriptacademic_path_healthcheck.shacademic_purity_guard.sh scriptacademic_purity_guard.shacademic_shield.pyactive_locked_session()active_session()adjudicate()alert()alert()_1alert()_2analyze()analyze_portfolio()anthropic_spend_monitor.pyanthropic_spend_week()antigravity_agent()api_health_audit.sh scriptapi_health_audit.shaqa()ar()arrow()arsenal_drift_check.sh scriptarsenal_drift_check.sharsenal_health_check.sh scriptarsenal_health_check.sharsenal_health_digest.sh scriptarsenal_health_digest.shask()ask()_1ask_anthropic()ask_google()ask_openai()ask_xai()auto_regenerate()auto_rollback_check.sh scriptauto_rollback_check.shautorecover_daemon.sh scriptautorecover_daemon.shbackup_host_configs.sh scriptbackup_host_configs.shbanner_truth_guard.sh scriptbanner_truth_guard.shbench()build()build_recovery_point.sh scriptbuild_recovery_point.shbuild_report()c_g()c_r()c_y()call_anthropic()call_gemini()call_gemini()_1call_openai()capability_router.sh scriptcapability_router.shcaption()chat()check()check()_1check()_2check_cli()check_eq()check_exists()check_ge()check_hash()check_incomplete_turns()chg()chk()chk()_1chk_http()chk_retry()chunk_text()chunk_text()_1classify()classify()_1clean_nexos()cleanup()cloudflare_activation_watch.sh scriptcloudflare_activation_watch.shcmd_backup()cmd_browse()cmd_cleanup()cmd_crawl()cmd_download()cmd_head()cmd_list()cmd_list()_1cmd_list()_2cmd_map()cmd_now()cmd_presign()cmd_prune()cmd_read()cmd_restore()cmd_scrape()cmd_search()cmd_send()cmd_show()cmd_status()cmd_status()_1cmd_upload()coding_toolchain_env.sh scriptcoding_toolchain_env.shcollect_error_patterns()compare_property_vs_investment()compute()computer_use()concat_mp3()config_valid()context_cap_guard.sh scriptcontext_cap_guard.shcontinuity_checkpoint.pycouncil scriptcouncilcouncil_health_guard.sh scriptcouncil_health_guard.shcpu_hog_guard.sh scriptcpu_hog_guard.shcron_session_cleanup.pycurrent()current_interval()daemons_keepalive.sh scriptdaemons_keepalive.shdecide()deep_research()digest()dns_propagation_watch.sh scriptdns_propagation_watch.shdo_restart()dolphin_liberation_test.pydolphin_venice_liberation_test.pydraw n small ticks perpendicular to segment ab at its midpoint.draw_rect()draw_semi()dump_context()elite_council.pyembed_text()emergency_recover.sh scriptemergency_recover.shensure()ensure_state()ensure_state()_1env()env()_1eqn()errors_summary()esc()evtx_analyze.pyevtx_dump.pyexisting_skills()extract()fable_orchestrator_guard.sh scriptfable_orchestrator_guard.shfallback_health_check.sh scriptfallback_health_check.shfile_md5()find_auth()fmt()free_gateway_port()fsfugu_availability_watch.sh scriptfugu_availability_watch.shfull_recovery_snapshot.sh scriptfull_recovery_snapshot.shfull_server_backup.sh scriptfull_server_backup.shfull_server_secure_backup.sh scriptfull_server_secure_backup.shfull_server_snapshot.sh scriptfull_server_snapshot.shgateway_alive()gateway_error_guard.sh scriptgateway_error_guard.shgateway_stable_pid()gateway_truly_hung()gemini_call()gemini_pcm()gemini_with_fallback.pygen_with_engine()generate_capabilities_index.sh scriptgenerate_capabilities_index.shgenerate_image()generate_music()generate_speech()generate_text()generate_text_interactions()generate_video()get()get_bucket()get_client()get_content()get_crypto()get_gold_silver()get_inflation()get_kt_funds()get_log_path()get_usd_try()get_usd_try()_1gf_codeonly.pygh_pr_merged()git_vault_autocommit.sh scriptgit_vault_autocommit.shgit_velocity()gmail_api()gmail_helper.pygolden_chain_diagram.pygolden_gate.sh scriptgolden_gate.shgolden_prompt_guard.sh scriptgolden_prompt_guard.shgoogle_rollout_watch.sh scriptgoogle_rollout_watch.shgraphify_map.sh scriptgraphify_map.shgrep_arsenal.sh scriptgrep_arsenal.shgrok45_region_watch.sh scriptgrok45_region_watch.shguard_map()guard_run_watcher.sh scriptguard_run_watcher.shhandle()has_signatures()hdr()heal()heal_active()heal_file()heal_idle()heal_thinking_signatures.pyhermes_arabic_font_fix.sh scripthermes_arabic_font_fix.shhermes_forward.pyhermes_tunnel_run.sh scripthermes_tunnel_run.shhttp()httpsincomplete_turn_auto_recover.sh scriptincomplete_turn_auto_recover.shincomplete_turn_autorecover.sh scriptincomplete_turn_autorecover.shincomplete_turn_daemon.sh scriptincomplete_turn_daemon.shincomplete_turn_guard.sh scriptincomplete_turn_guard.shinotify_nexos_guard.sh scriptinotify_nexos_guard.shinotify_wrapper_guard.sh scriptinotify_wrapper_guard.shinstallation_drift_check.sh scriptinstallation_drift_check.shinventory_delta()is_openclaw_alive()is_thinking()json_escape()kt_funds_tracker.pyl3_loop_daemon.sh scriptl3_loop_daemon.shlabel_pt()last_user_message()liberation_guard.pyliberation_route.pylinear_velocity()lint_cron_payload.sh scriptlint_cron_payload.shlip_happyhorse()live()load_env()load_env()_1load_lines()load_state()local_llm_bench_after_backup.sh scriptlocal_llm_bench_after_backup.shlog()log()_1log()_10log()_11log()_12log()_13log()_14log()_15log()_16log()_17log()_18log()_19log()_2log()_20log()_21log()_3log()_4log()_5log()_6log()_7log()_8log()_9log_compliance.sh scriptlog_compliance.shlog_rotation.sh scriptlog_rotation.shlog_section()long_video.sh scriptlong_video.shmain()main()_1main()_10main()_11main()_12main()_13main()_14main()_15main()_16main()_17main()_18main()_19main()_2main()_20main()_21main()_22main()_23main()_24main()_25main()_3main()_4main()_5main()_6main()_7main()_8main()_9main_loop()make_recommendations()maybe_keepalive_safety_net()mcp_call.pymcp_probe.pymedia_failover.pymedia_say.sh scriptmedia_say.shmeta_guard_test.sh scriptmeta_guard_test.shmiss()monitor_m033_leaks.sh scriptmonitor_m033_leaks.shmorning_report.sh scriptmorning_report.shmulti_flagship_verify.pynew_ax()newest_main_session()nexos_guard.sh scriptnexos_guard.shnightly_batch_processor.sh scriptnightly_batch_processor.shnotify()notify()_1notify()_2notify()_3notify()_4notify()_5notify()_6notify()_7notify_restart_if_new()now()now()_1now()_2now()_3now_iso()now_iso()_1ok()ollama_autostart.sh scriptollama_autostart.shollama_big_ondemand.sh scriptollama_big_ondemand.shopenclaw_host_recovery.sh scriptopenclaw_host_recovery.shopenclaw_proc_alive()openclaw_watchdog.sh scriptopenclaw_watchdog.shopenclaw_watchdog_v2.sh scriptopenclaw_watchdog_v2.shoxylabs_tool.pyp6_parse.pyparse()parse()_1parse_domains()parse_feature_requests()parse_xer()parse_xml()path_6pcm_to_mp3()pika_effects_probe.sh scriptpika_effects_probe.shping_openai_compat()pipe()poll_interaction()poll_operation()portal_add_entertainment.pypost_reboot_arsenal_recovery.sh scriptpost_reboot_arsenal_recovery.shpost_restart_channel_check.sh scriptpost_restart_channel_check.shpre_reply_lint.sh scriptpre_reply_lint.shpre_xer_check.sh scriptpre_xer_check.shprev_merged()price_for()primary_now()probe()probe()_1publish_crons_doc.sh scriptpublish_crons_doc.shpublish_guards_status.sh scriptpublish_guards_status.shpull()pull_uncensored_models.sh scriptpull_uncensored_models.shpyrun.sh scriptpyrun.shquery()r2_manager.pyrc_section_analysis.pyread_text()recent_poison_count()record_restart()recover_session()recovery_drill_ab.sh scriptrecovery_drill_ab.shrecovery_drill_c_extract.sh scriptrecovery_drill_c_extract.shrect_area_video.pyrecurring_errors()refresh_last_good.sh scriptrefresh_last_good.shrender_scene()replay_invalid_guard.sh scriptreplay_invalid_guard.shreplay_invalid_repair.pyreplay_poison_healer.pyreplay_recovery.pyreplay_selfheal.sh scriptreplay_selfheal.shreplay_selfheal_daemon.sh scriptreplay_selfheal_daemon.shreplay_selfheal_loop.sh scriptreplay_selfheal_loop.shresolve()resolve_live_log()resolve_log()resolve_openclaw_log()resolve_openclaw_log.sh scriptresolve_openclaw_log.shresolve_openclaw_log_newest()resource_pressure_check.sh scriptresource_pressure_check.shrestarts_last_hour()robotics_er()rotate_compliance_log.sh scriptrotate_compliance_log.shrows_from()run()run_chain()run_healer()run_panel()s()safe_config_patch.sh scriptsafe_config_patch.shsafe_cp()safe_media_send.sh scriptsafe_media_send.shsafe_update.sh scriptsafe_update.shsafe_write_path()save_continuity()save_state()say()scan_dir()scene1()scene2()scene3()scene4()scene5()scene6()sec()self_audit.pyselftest()send_wake()session_key()sessions_subagent_cleanup.pyshould_skip()signature_fix_watch.sh scriptsignature_fix_watch.shsnapshot()snapshot_retention.sh scriptsnapshot_retention.shsnapshots_retention.sh scriptsnapshots_retention.shsota_benchmark.pyspawn_openclaw()sqlite_tune.sh scriptsqlite_tune.shstale_lock_cleanup.sh scriptstale_lock_cleanup.shstall_watchdog.sh scriptstall_watchdog.shstart_if_dead()start_watchdog_daemons.sh scriptstart_watchdog_daemons.shstatus()stop()storage_cleanup.sh scriptstorage_cleanup.shstrip_block()strip_model()stt_transcribe.pysummarize()sync_obsidian_vault.sh scriptsync_obsidian_vault.shtelegram_stall_guard.sh scripttelegram_stall_guard.shtest_fallback_chain.sh scripttest_fallback_chain.shtext_of()text_of()_1tg_code.sh scripttg_code.shthinking_signature_guard.sh scriptthinking_signature_guard.shtick_on()timemachine.sh scripttimemachine.shtimemachine_freshness_guard.sh scripttimemachine_freshness_guard.shtranscribe()transcribe_groq()transcribe_openai()ts()ts()_1ts()_2ts()_4ts()_5ts()_6ts()_7tts_chain_selftest.sh scripttts_chain_selftest.shtts_charon_chunked.pytts_cli_adapter.sh scripttts_cli_adapter.shtts_elevenlabs()tts_gemini()tts_gemini25()tts_minimax()tts_openai()tts_unified.pytts_xai()uncensored_local.sh scriptuncensored_local.shuncensored_online.sh scriptuncensored_online.shupstream_replay_watch.sh scriptupstream_replay_watch.shvenice.sh scriptvenice.shverify_agreements.sh scriptverify_agreements.shverify_arsenal_loaded.sh scriptverify_arsenal_loaded.shverify_context_load.sh scriptverify_context_load.shverify_domain_chains.sh scriptverify_domain_chains.shverify_google_dualkey.pyverify_host_daemon.sh scriptverify_host_daemon.shverify_rule_compliance.sh scriptverify_rule_compliance.shverify_toolchain.sh scriptverify_toolchain.shversion_drift_guard.sh scriptversion_drift_guard.shvid_grok15()vid_seedance()voice_archiver.sh scriptvoice_archiver.shwatchdog_unified.sh scriptwatchdog_unified.shweekly_arsenal_audit.sh scriptweekly_arsenal_audit.shweekly_compliance_report.sh scriptweekly_compliance_report.shweekly_disk_cleanup.sh scriptweekly_disk_cleanup.shweekly_full_audit.sh scriptweekly_full_audit.shweekly_investment_advisor.pyweekly_memory_merge.sh scriptweekly_memory_merge.shweekly_recovery_point.sh scriptweekly_recovery_point.shweekly_report.jsweekly_snapshot_and_email.sh scriptweekly_snapshot_and_email.shweekly_software_update.sh scriptweekly_software_update.shweekly_velocity_report.pywhatsapp_health_guard.sh scriptwhatsapp_health_guard.shwhatsapp_number_guard.sh scriptwhatsapp_number_guard.shworking_indicator.sh scriptworking_indicator.shwrite_audit()yday_utc()من logs أنماط الأخطاء فقط (errorfailexception) — لا محتوى خام حسّاس.نداء واحد مع إعادة واحدة فقط على الأخطاء العابرة (no infinite loop).يشغّل اللوحة بالتوازي تحت مهلة جدارية صارمة. أي future لم يكتمل = فشل مهلة.يولّد كل المقاطع بمحرّك واحد (صوت متّصل). يرجع True فقط لو نجحت كل المقاطع.

--- name: data-charts-visualization description: Default skill for structured-data visualization, chart generation, and dashboard-style reporting. Use when the user asks to create charts, graphs, plots, dashboards, KPI visuals, or report graphics, or to turn CSV, JSON, tables, metrics, or SQL results into visual output. Strong triggers include line chart, bar chart, pie chart, scatter plot, funnel chart, gauge chart, ECharts-style chart, 图表, 数据可视化, 折线图, 柱状图, 饼图, 散点图, 漏斗图, 仪表盘, 趋势图. homepage: https://github.com/ykforerlang/awesome-skills/tree/main/skills/data-charts-visualization metadata: {"openclaw":{"emoji":"📦","requires":{"bins":["node","npm"]}}} ---

Data Charts Visualization

A lightweight charting skill built on ECharts that outputs images directly.

Why This Skill

Role

This is the default charting skill for OpenClaw-like agents.

Use it whenever:

If the request involves structured data and visual output would materially improve the result, prefer this skill. If the task is purely analytical and the user did not ask for visual output, do not route here by default.

Showcase

!case

Operating Model

The most important mental model is the three-way split:

The working contract is:

1. prepare data 2. choose a chart-specific config 3. add variant only for one-off chart decisions 4. render through the CLI

Keep these boundaries strict:

config is a chart config schema payload with common and specific. It is not a raw ECharts style patch.

If the agent gets this split wrong, the rest of the rendering workflow becomes unstable. Before acting, classify the user’s request into:

Read {baseDir}/references/cli-and-config.md before calling the CLI. Read {baseDir}/references/chart-selection-and-variants.md when deciding chart family or variant. Read {baseDir}/references/config-page-handoff.md when the user is entering style-tuning or exploratory design work.

Routing Rules

Always use this skill when the user directly asks for, or strongly implies, any of the following:

Treat these as strong routing triggers:

Do not treat plain analysis-only phrases such as generic data analysis, business analysis, metrics analysis, reporting, 趋势分析, 对比分析, 分布分析, or 相关性分析 as strong routing triggers unless the user also asks for visual output or clearly implies a chart.

Supported Charts

Supported --chart-type values:

Common business variants map onto those chart families:

Execution Rules

This skill renders charts through a local runtime installed in the skill directory.

Delivery Rules

Choose delivery behavior based on workflow intent and channel capability.

Default heuristic:

Workflow

1. Confirm that the task needs a chart. 2. Choose the simplest chart that answers the user’s question. 3. Transform the source input into the required data shape. 4. Start from the matching persistent chart config under {baseDir}/config/. 5. Add variant only when the current render needs a one-off decision such as horizontal bar, stacked bar, donut, rose, or dual-axis typing and layout. 6. Render through the CLI. 7. Deliver the result according to the Delivery Rules. Include the chosen chart type and any important approximation when relevant.

Chart Choice

Default chart-family guidance:

Default priority when the user did not specify a chart:

1. line 2. bar 3. area 4. dualAxis 5. pie 6. scatter 7. funnel 8. radar 9. gauge

For chart-family and variant decisions such as pie vs donut vs rose, bar vs horizontal bar vs stacked bar, area vs line, and whether dual-axis is justified, load {baseDir}/references/chart-selection-and-variants.md. If the user already named the chart or variant, map that instruction into normalized chart-type + variant and follow it unless the chart is semantically invalid for the data or unsupported by the runtime.

Config Policy

Persistent chart configs live under:

Treat each file as a complete chart config object. Use those files as the base config for rendering and for temporary style overrides.

data / config / variant Quick Reference

This is one of the most important execution rules in the skill.

data

Put these in data:

Short version:

config

Put these in config:

Short version:

variant

Put these in variant:

Short version:

Do Not Mix Them

Avoid these mistakes:

A practical test:

Style Requests

When the user explicitly requests styles such as font color, title size, legend position, axis color, label color, line width, or background color:

1. read the persistent chart config for the chosen chart 2. merge the requested style overrides in memory 3. pass the merged config to the CLI through --config 4. discard the temporary override after rendering

Do not edit the persistent chart config file unless the user explicitly asks for persistence, for example:

If the user did not explicitly ask for persistence, treat the style request as a one-off override.

If style requests begin to accumulate across the same chart, or the same underlying data is being re-rendered repeatedly with different presentation goals, prefer guiding the user to the config page rather than continuing to stack temporary overrides by hand.

Hard Trigger: Repeated Style Tuning

Use this section only for escalation rules.

For the same chart or substantially the same underlying data, count style-tuning turns whenever the user changes presentation without materially changing the underlying data, such as:

Escalation rules:

Weak reminder intent:

Strong recommendation intent:

Do not wait for the user to say “too many changes”. The agent must track this pattern itself.

Config Page

Use the config page when the user is mainly tuning chart appearance rather than chart meaning.

Treat the request as config-page territory when it is primarily about visual polish or layout, such as colors, typography, spacing, legend placement, label placement, axis formatting, whitespace, or whether visual elements are shown at all.

Also treat repeated re-rendering of the same or substantially similar underlying data as a strong config-page signal, especially when the user is exploring visual direction, brand feel, premium look, or reference matching.

Config page URLs:

When the chart type is known, include the matching chartType= query parameter in the URL.

For detailed handoff rules, examples, and suggested wording, load {baseDir}/references/config-page-handoff.md.

Config Return Payload Support

Support a config-page return format like:

text
/skill data-charts-visualization update-config
type: line

{ ...json... }

Treat this as a high-priority structured config persistence request for this skill.

Default handling behavior:

1. identify the chart type from type 2. resolve the persistent target config file from the chart type instead of relying on a user-supplied relative path 3. before writing, validate that the provided JSON is a legal chart config structure and that all fields used are allowed by the config contract documented in {baseDir}/references/cli-and-config.md 4. keep this validation intentionally lightweight: field legality only; do not require type validation unless the user explicitly asks for stricter validation 5. reject unknown fields or unsupported nested paths, do not write the file when validation fails, and tell the user which field path was invalid 6. overwrite the target config file directly with the provided full JSON config under {baseDir}/config/ only after validation passes 7. tell the user the config update succeeded and that future charts of this type will use this config by default 8. if appropriate, ask whether the user wants the chart rendered or re-rendered with the updated config

Chart type to config file mapping:

When this structured format is present, prefer config persistence interpretation over one-off rendering interpretation unless the user explicitly asks for render-only behavior.

Rendering Rules

Output

The final result should include, as appropriate: