Individual skill
agentforce-architecture-analyze
Declared architecture snapshot for one Agentforce agent: planner, topics, actions, flows, Apex, prompt templates, and NGA plugins. Renders a human-readable architecture document and Mermaid invocation graph from design-time metadata (not runtime audit rows). TRIGGER when user asks to describe, diagram, inventory, audit, document, or diff (e.g. v3 vs v5) the architecture / action tree / topic structure / tool inventory of a specific agent by agent API name in a specific org. DO NOT TRIGGER for runtime session traces, conversation transcripts, generation timings, or gateway audit chains — this skill reads design-time metadata only (use agentforce-d360-analyze for session traces).
plugins/builder/agentforce-adlc/skills/agentforce-architecture-analyze/SKILL.md
Source commit a8a18ce1e4ba12e69b4073eab98ce31bfbd8271e
What was checked
- Matches the observed repository HEAD
- Yes
- Scanner rules are current
- No
- Repository scan complete
- No
- Skill scan complete
- No
- Observed behavior
- Not checked yet
- Last checked
- Nov 4, 2026
These are observations at the recorded commit, not a guarantee of safety. Review the source before running it.
Install this skill
Choose an agent in your Stack or copy a command below. Commands fetch the pinned commit and copy only this skill directory. Existing destinations are refused. Copying a command does not install anything.
An install command is unavailable: current rules, complete repository and skill scans, an eligible behavior level and a permitted license are required.
Repository context
- Repository stars (not skill ratings)
- 1,151
- Repository last updated
- Nov 6, 2026
- License
- Apache-2.0
Observed agent integration: No specific integration evidence. Standard SKILL.md installation does not imply verified compatibility.
- engineering Derived category
- design Derived category
- security Derived category
Files and excerpt
File metadata and permitted, redacted excerpts come from the recorded scan. Source links are pinned to that commit.
Browse files
README.mddoc · 8,753 bytesSKILL.mdcore · 17,962 bytesassets/cli/describe_sobject.yamlasset · 317 bytesassets/cli/describe_tooling_sobject.yamlasset · 347 bytesassets/cli/list_metadata_genaiprompttemplate.yamlasset · 342 bytesassets/cli/org_display.yamlasset · 280 bytesassets/cli/retrieve_genai_plugin.yamlasset · 391 bytesassets/cli/show_access_token.yamlasset · 700 bytesassets/mermaid/action_tree.mmdasset · 986 bytesassets/mermaid/data_flow.mmdasset · 893 bytesassets/mermaid/dependency_graph.mmdasset · 810 bytesassets/mermaid/invocation_sequence.mmdasset · 1,004 bytesassets/mermaid/planner_state.mmdasset · 813 bytesassets/soql/apex_class_bodies_by_ids.soqlasset · 103 bytesassets/soql/apex_class_bodies_by_names.soqlasset · 102 bytesassets/soql/bot_definition_details.soqlasset · 152 bytesassets/soql/bot_version_lookup.soqlasset · 186 bytesassets/soql/flow_definition_by_ids.soqlasset · 115 bytesassets/soql/flow_definition_ids_by_names.soqlasset · 146 bytesassets/soql/flow_definition_view_by_durable_ids.soqlasset · 180 bytesassets/soql/flow_metadata_by_id.soqlasset · 73 bytesassets/soql/functions_by_plugins.soqlasset · 317 bytesassets/soql/planner_attrs_by_parent_ids.soqlasset · 156 bytesassets/soql/planner_bundle_functions.soqlasset · 93 bytesassets/soql/planner_definition_by_agent_chain.soqlasset · 174 bytesassets/soql/plugin_functions_by_plugin_ids.soqlasset · 93 bytesassets/soql/plugin_instructions_by_plugin_ids.soqlasset · 168 bytesassets/soql/plugins_by_planner.soqlasset · 199 bytesreferences/architecture_sections.mddoc · 8,460 bytesreferences/contract.jsonasset · 11,960 bytesreferences/soql_fields.mddoc · 25,195 bytesscripts/_shared/__init__.pyruns · 82 bytesscripts/_shared/fs_guard.pyruns · 13,157 bytesscripts/_shared/paths.pyruns · 4,012 bytesscripts/_shared/runtime.pyruns · 2,061 bytesscripts/_shared/sql.pyruns · 355 bytesscripts/cache_check.pyruns · 9,148 bytesscripts/config.pyruns · 6,032 bytesscripts/emit_env.pyruns · 5,197 bytesscripts/emit_result.pyruns · 10,939 bytesscripts/fetch_soql.pyruns · 26,723 bytesscripts/finalize.pyruns · 12,065 bytesscripts/main.pyruns · 116,626 bytesscripts/metadata_listing.pyruns · 9,685 bytesscripts/parallel_retrieve.pyruns · 3,396 bytesscripts/parse_bundle.pyruns · 8,135 bytesscripts/parse_wave.pyruns · 36,951 bytesscripts/probe_channels.pyruns · 11,399 bytesscripts/render_architecture.pyruns · 40,982 bytesscripts/resolve_bot.pyruns · 9,594 bytesscripts/resolve_invocation_target.pyruns · 4,951 bytesscripts/rest_client.pyruns · 34,520 bytesscripts/retrieve_planner.pyruns · 464 bytesscripts/sanitize.pyruns · 1,013 bytesscripts/sf_cli.pyruns · 12,590 bytesscripts/soql_loader.pyruns · 11,409 bytesscripts/summarize_tree.pyruns · 4,752 bytesscripts/tests/__init__.pyruns · 0 bytesscripts/tests/_bootstrap.pyruns · 843 bytesscripts/tests/fixtures/__init__.pyruns · 0 bytesscripts/tests/fixtures/genai_payloads.pyruns · 12,833 bytesscripts/tests/test_cache_check.pyruns · 12,891 bytesscripts/tests/test_cache_check_main.pyruns · 10,648 bytesscripts/tests/test_config.pyruns · 3,911 bytesscripts/tests/test_end_to_end_fixture.pyruns · 26,821 bytesscripts/tests/test_finalize.pyruns · 11,443 bytesscripts/tests/test_flow_children_inflation.pyruns · 26,180 bytesscripts/tests/test_fs_guard.pyruns · 4,390 bytesscripts/tests/test_iterative_wave_b.pyruns · 19,424 bytesscripts/tests/test_main_pipeline.pyruns · 148,603 bytesscripts/tests/test_parallel_retrieve.pyruns · 4,932 bytesscripts/tests/test_parse_bundle.pyruns · 15,924 bytesscripts/tests/test_parse_wave.pyruns · 27,501 bytesscripts/tests/test_parse_wave_classifiers.pyruns · 8,757 bytesscripts/tests/test_parse_wave_helpers.pyruns · 14,622 bytesscripts/tests/test_parse_wave_main.pyruns · 16,756 bytesscripts/tests/test_per_branch_visited.pyruns · 9,777 bytesscripts/tests/test_probe_channels.pyruns · 13,621 bytesscripts/tests/test_probe_cli_recipes.pyruns · 8,445 bytesscripts/tests/test_render_architecture.pyruns · 33,522 bytesscripts/tests/test_resolve_bot.pyruns · 7,650 bytesscripts/tests/test_resolve_creds.pyruns · 12,244 bytesscripts/tests/test_resolve_invocation_target.pyruns · 5,300 bytesscripts/tests/test_rest_client.pyruns · 50,961 bytesscripts/tests/test_runtime_override.pyruns · 4,026 bytesscripts/tests/test_sf_cli.pyruns · 17,733 bytesscripts/tests/test_signature_stamping.pyruns · 18,469 bytesscripts/tests/test_skill_md_pipeline_block.pyruns · 13,046 bytesscripts/tests/test_soql_loader.pyruns · 21,823 bytesscripts/tests/test_summarize_tree.pyruns · 9,151 bytesscripts/tests/test_write_emit_ctx.pyruns · 19,630 bytesscripts/write_emit_ctx.pyruns · 14,404 bytes
Read excerpt
# agentforce-architecture-analyze — declared architecture snapshot
Design-time metadata tree for one Agentforce agent: planner → topics → actions → flows → Apex → prompts → NGA plugins. Reads declared metadata only — `BotDefinition`, `GenAiPlanner*`, `GenAiPlugin*`, `GenAiFunction*`, `Flow`, `ApexClass`, `GenAiPromptTemplate`. Does **not** read runtime audit rows.
**Runtime budget: 30–45s typical, ≤60s hard cap** on reference fixtures. Sequential baseline would be 90–220s; parallel Tooling SOQL fan-out delivers a 3–5× speedup. Large bots with many flows scale approximately linearly — each flow metadata retrieve is one round-trip.
Runs **inline** — no subagent. Every phase is deterministic file processing.
## If the user hasn't named an agent
Trigger condition: `$ARGUMENTS` names no agent (no `--agent` flag and no exact `BotDefinition` API name in the prose). Never invent an agent name. Instead, discover what the org actually contains — one read-only query, no pipeline yet. Use the `--org` alias if given, otherwise the default target org (omit `--target-org`):
```bash
sf data query --query "SELECT DeveloperName, MasterLabel FROM BotDefinition ORDER BY DeveloperName" \