AutoGineer summary
Written by AutoGineer from the skill’s own files, not by the author
Foundry IQ provides a structured framework for creating, diagnosing, and connecting knowledge bases to AI agents. It supports making local or Blob-based documents searchable, managing multi-source knowledge configurations, and retrieving information with citations. The skill emphasizes strict adherence to defined procedures for service discovery, resource creation, and troubleshooting to ensure reliable agent-knowledge integration.
What it does
- Creates searchable knowledge bases from local or Azure Blob storage documents.
- Connects existing knowledge bases to AI agents.
- Diagnoses issues with knowledge base configurations or unsupported connectors.
- Retrieves information from knowledge bases with source citations.
- Manages the lifecycle of search services and knowledge sources.
- Routes requests based on specific operational needs rather than source counts.
When to use it
- When you need to make local or cloud-stored documents searchable by an AI agent.
- When connecting an existing knowledge base to a new or current agent.
- When troubleshooting or diagnosing a knowledge base configuration.
- When you need to create a new search service or knowledge source.
- When performing retrieval tasks that require citations from a knowledge base.
Advantages
- Provides a clear, procedural approach to knowledge base management.
- Ensures consistent handling of multi-source knowledge configurations.
- Includes built-in diagnostic paths for troubleshooting.
- Supports secure, citation-backed retrieval for agent responses.
- Prevents unauthorized or unsupported configuration changes.
Usage examples
- “Create a new knowledge base from my Azure Blob container.”
- The agent will initiate the knowledge base creation procedure, validating the source and setting up the necessary search indexing.
- “Connect my existing knowledge base to the current agent.”
- The agent will follow the connection workflow to link the specified knowledge base to the agent's retrieval pipeline.
- “Why is my multi-source knowledge base failing to index?”
- The agent will trigger the diagnostic procedure to identify configuration drifts or unsupported connector issues.
- “Retrieve information about project timelines from the knowledge base.”
- The agent will query the knowledge base and provide an answer with citations from the source documents.
Install
Download the skill as a ZIP:
https://autogineer.com/agent-skills/microsoft/foundry-iq/downloadUnzip it into the cross-client skills folder of your project:
mkdir -p .agents/skills && unzip foundry-iq.zip -d .agents/skills
Documentation by Microsoft
Foundry IQ
Read one procedure before questions/actions; invocation is not a read.
Read the owning procedure before blocked/unsupported responses too.
Before mutation plans/approval, successfully read its required pre-action references, selected
branches only. Do not reload successful reads. On failure, try only permitted
bounded exact-path reads with any supported reader; never bypass restrictions
or search broadly. If still unavailable: blocked: reference-unavailable, name
missing references and inability to plan. Never invent requirements/plans.
Failures first.
Cleanup and receipt-backed execution go directly to their lifecycle/producer owner; do not reopen Search intake, provisioning or hardening.
Before expensive service discovery, reuse supplied resource/intent; otherwise ask one early USE EXISTING / FIND CANDIDATES / CREATE NEW choice. Only FIND enumerates; supplied identity uses exact/minimum scoped resolution. CREATE checks its proposed name, not existing-service inventories. Preserve these answers across source/KB/CU/model handoffs; selection is not write approval.
Searchable docs: KB + validated retrieval. Confirm intent once; KS-only must be explicit. Child success is not KB completion. Unclear/compound/mode/completion: read.
Route by requested operation, not existing KB source count. Connecting an existing KB with two or more sources, without changing the KB, uses Connect. Read-only operations use their owning procedure and actual helper constraints; this does not add retrieval modes or supported source kinds. Explicit unsupported provisioning or multi-source KB creation/reconfiguration uses Diagnose and stops before discovery, even when connecting an agent is also requested. This routing takes precedence over classic-search terms (e.g. hybrid search) in compound requests. Never end in a plain refusal: Diagnose gives the boundary, docs pointer and agent handoff; writes still need an approved concrete plan. Do not silently execute only the supported part of a compound request. If existing-KB connection versus KB creation/reconfiguration is unclear, read intent-routing and clarify that scope before Azure discovery. Never infer KB mutation.
| Outcome | Read |
|---|---|
| Cleanup | Plan cleanup |
| Failure/drift | Diagnose |
| Unsupported connector provisioning / multi-source KB creation or reconfiguration | Diagnose |
| Connect | Connect |
| Read KB | Query |
| Search only | Search |
| File KS only | File |
| Blob/ADLS KS only | Blob |
| Searchable/KB | KB |
Generic agents: microsoft-foundry.
Reads: no approval; approve unchanged plans before writes.
Hide hashes. No Search/Storage keys, scope widening, guessed identity/boundaries,
drift repair or joint cleanup/creation approval. Acceptance != success.
Files
- ATTRIBUTION.mdAdded by AutoGineer977 B
- LICENSELicence file added by AutoGineer1.1 KiB
- SKILL.md3.7 KiB
- agents/connect-hosted-toolbox.md7.8 KiB
- agents/connect-hosted.md7.8 KiB
- agents/connect-prompt-sdk-fallback.md7.8 KiB
- agents/connect.md7.8 KiB
- agents/create-missing-agent.md7.8 KiB
- helpers/_blob_observation.pyScript4.4 KiB
- helpers/_blob_source_read.pyScript39.5 KiB
- helpers/_bootstrap_io.pyScript30.1 KiB
- helpers/_cleanup_dependencies.pyScript27.5 KiB
- helpers/_cleanup_receipts.pyScript13.5 KiB
- helpers/_common.pyScript36.2 KiB
- helpers/_document_adapters.pyScript15.0 KiB
- helpers/_document_limits.pyScript3.9 KiB
- helpers/_embedding.pyScript7.0 KiB
- helpers/_file_inventory.pyScript24.4 KiB
- helpers/_file_source_config.pyScript15.6 KiB
- helpers/_indexer_observation.pyScript7.1 KiB
- helpers/_initial_prompt.pyScript12.5 KiB
- helpers/_private_json.pyScript2.4 KiB
- helpers/_progress.pyScript12.1 KiB
- helpers/_prompt_read.pyScript17.7 KiB
- helpers/_search_read.pyScript6.0 KiB
- helpers/_source_readback.pyScript1.6 KiB
- helpers/blob-contracts.md7.8 KiB
- helpers/blob-cu-contracts.md7.8 KiB
- helpers/blob_inventory.pyScript17.1 KiB
- helpers/blob_recheck.pyScript64.6 KiB
- helpers/blob_source.pyScript35.8 KiB
- helpers/bootstrap-contracts.md7.8 KiB
- helpers/bootstrap_azure.pyScript41.5 KiB
- helpers/cleanup_plan.pyScript41.4 KiB
- helpers/contracts.md7.8 KiB
- helpers/cu_ingestion_auth.pyScript12.5 KiB
- helpers/document-assessment.md7.8 KiB
- helpers/document_assess.pyScript14.0 KiB
- helpers/file-upload-recovery.md7.8 KiB
- helpers/file_cu_canary.pyScript32.7 KiB
- helpers/file_cu_mi.pyScript9.6 KiB
- helpers/file_ingest.pyScript15.4 KiB
- helpers/file_source.pyScript31.7 KiB
- helpers/file_upload.pyScript53.7 KiB
- helpers/hosted_connect.pyScript30.8 KiB
- helpers/kb-contracts.md7.8 KiB
- helpers/knowledge_base_retrieve.pyScript7.7 KiB
- helpers/model-discovery-contracts.md7.8 KiB
- helpers/model-discovery-scopes.md7.8 KiB
- helpers/model_discovery.pyScript23.7 KiB
- helpers/private-artifacts.md7.2 KiB
- helpers/private_artifacts.pyScript4.8 KiB
- helpers/prompt_cleanup.pyScript22.0 KiB
- helpers/prompt_connect.pyScript62.3 KiB
- helpers/requirements-assessment.txt103 B
- helpers/retrieval-verification-contracts.md7.8 KiB
- helpers/retrieval_verify.pyScript19.6 KiB
- helpers/search-intake-contracts.md7.6 KiB
- helpers/search_intake.pyScript18.4 KiB
- helpers/search_reconcile.pyScript59.7 KiB
- helpers/source_vector.pyScript33.2 KiB
- helpers/throttle-recovery.md5.0 KiB
- helpers/vector-contracts.md7.8 KiB
- knowledge-bases/create.md8.1 KiB
- knowledge-bases/retrieve.md7.8 KiB
- knowledge-sources/create-azure-blob.md7.8 KiB
- knowledge-sources/create-file.md7.8 KiB
- lifecycle/cleanup.md7.8 KiB
- references/abstention.md1.0 KiB
- references/blob-binding-evidence.md7.8 KiB
- references/blob-indexer-observation.md7.7 KiB
- references/blob-ingestion-progress.md6.5 KiB
- references/blob-readiness-recheck.md7.8 KiB
- references/blob-vector-readiness.md2.6 KiB
- references/bootstrap-azure.md7.8 KiB
- references/content-fit.md7.8 KiB
- references/cu-ingestion.md7.8 KiB
- references/file-cu-canary.md7.8 KiB
- references/intent-routing.md7.7 KiB
- references/owner.md2.1 KiB
- references/platform-contracts.md7.7 KiB
- references/platform-interfaces.md7.8 KiB
- references/resource-intake.md7.8 KiB
- references/search-substrate.md7.8 KiB
- references/standard-cu.md7.8 KiB
- search-services/create.md7.8 KiB
- troubleshooting/diagnose.md8.7 KiB
references/platform-contracts.md
Shared workflow contract
Resolve each value only from: current prompt, explicit session choice, unambiguous selected workspace configuration, exact-scope Azure readback, documented safe default that does not choose identity/geography/cost/data/ security/mutation scope, then one focused question. Label the source. Missing required or applicable conditional input pauses for that question; silence is not approval, an empty boundary, or fallback selection.
Progress semantically through routing, read-only discovery, input resolution, reconciliation, proposed-plan review, confirmation, mutation, verification, and a completed, partial, or blocked result. Cleanup is a separate planned, approved, executed, and verified lifecycle. Read-only discovery needs no approval.
Do not read policy as a prerequisite to plans or writes. Use policy diagnostics only when Azure creation fails with evidence implicating policy. Preserve known requirements, security settings and actual Azure denials. Missing diagnostic details warn without replacing the original failure; no scan is not compliance.
Absent prerequisite IDs are outputs: call the shared bootstrap directly, not File-to-KB-to-File delegation. Classify each dependency independently for reuse, creation or conflict. Never alter compatible shared infrastructure. Bootstrap, observed-principal role assignment, source and verified-source KB plans have separate actual approvals. No future identity/source verification.
Before mutation, emit one immutable proposed mutation plan with
plan_fingerprint, named outcome, exact tenant/subscription/group/
Search/project targets, ordered actions with before/after, API version and
GA/preview status, exact data boundary and processing, network and permission
mode, principal/role/scope/assignment IDs, existing/new cost, verification,
rollback owner, retained resources, and cleanup_approved: false.
The fingerprint and any definition or content digests are generic integrity
checks over concrete proposed or read-back state, not workflow identifiers.
Plain yes, proceed, or go ahead approves only when exactly one unchanged
proposed mutation plan is pending and its fingerprint still matches. Silence,
emoji, partial language, or multiple pending plans do not approve. Any material
input, inventory, identity, ETag, boundary, model, network, role, definition, or
endpoint or known applicable requirement change invalidates the plan and requires
a new fingerprint and review. Do not refresh policy routinely.
Ambiguous writes are reconciled by reading the same deterministic identity,
never blind retry.
When an owning workflow selects a checked-in helper, read its contract in
../helpers/contracts.md before constructing or approving the plan; do not reread.
The helper consumes a
UTF-8 JSON envelope with schema_version: "1.0", the complete plan, and
approval: {confirmed: true, fingerprint: "sha256:<canonical-plan-digest>"}.
Canonical plan JSON is key-sorted, ASCII-escaped (ensure_ascii=True), compact UTF-8.
Helper exit 0 is
completed, 2 is a no-write blocked result, and 3 is partial; callers
must preserve the emitted JSON and nonzero status. Plans never contain tokens,
keys, SAS, passwords, file content, or secret-bearing connection strings.
Helpers do not resolve ambiguity, choose resources, approve plans, diagnose
open-ended failures, or infer cleanup.
Read-only --plan exit 0 returns planned, unapproved execution_input
and an approval summary, not ingestion success.
Use the selected helper contract.
The helper computes integrity values; users approve concrete changes, not hashes.
Fresh exact no-write reuse requires no mutation approval or helper execution;
its identity/marker checks do not prove ingestion readiness. Planning evidence
never carries consent forward. Creation requires current security/known-requirement
evidence and explicit approval before executing the unchanged envelope.
Keep failure-driven policy evidence in the revised parent plan, binding each supported
child plan's fingerprint. Closed helper envelopes do not accept arbitrary policy/tag
fields or evaluate Azure Policy. Required settings must reach the actual
supported request body; otherwise return azure-policy-setting-unsupported.
Exact reuse is zero-write and idempotent. Inaccessible is not absent. Multiple compatible resources without an existing anchor require exact resource-ID selection. Conflicts stop; never suffix-duplicate or patch drift into conformance.
Use the applicable shape; never manufacture approval. Planning, fresh exact reuse:
status: planned
approval_summary:
execution_required: false
mutation_approval_required: false
verification: identity/markers checked; ingestion/readiness and retrieval unverified
execution_input:
schema_version: "1.0"
plan: exact machine plan
approval: {confirmed: false, fingerprint: machine integrity field}
writes_performed: []Creation: flags true, approval false; no mutation helper for reuse.
File lists: 200 GET pages (empty included), 200 records, 1 MiB body/page.
Shared 60s deadline interrupts body sockets; watchdogs are joined.
DNS/connect/headers: inactivity timeouts, not a hard wall limit.
Interrupts may lag; redirects/unsupported readers block. Fail closed;
never truncate; failures after writes stay partial. Limits aren't consent.
Only approved mutation completion uses:
status: completed
outcome: exact named outcome
approved_plan: {fingerprint: exact, confirmed: true}
resources: {created: [], reused: [], updated: [], skipped: []}
api_contracts: [{operation: exact, version: exact, preview: true|false}]
data_movement: {boundary: exact, result: exact}
auth: {mode: managed-identity|entra-user, principals: []}
rbac: {assignments: []}
network: {posture: exact, evidence: exact}
verification: {ingestion: exact, retrieval: exact, citations: [], abstention: exact, tool_or_toolbox_readback: exact, idempotency: exact}
warnings: []
ownership: {run_owned: [], reused_not_owned: []}
cleanup: {status: not-requested|planned|completed|failed, separate_confirmation_required: true}status: blocked
outcome: exact named outcome
blocked_at: discovery|input-resolution|reconciliation|confirmation|verification
first_blocker: {code: exact, message: exact, status: exact|null, request_id: exact|null}
missing_or_conflicting_input: exact
read_only_evidence: []
writes_performed: []
warnings: []
safe_next_decision: one focused question or explicit handoff
ownership: no new resources
cleanup: not applicablestatus: partial
outcome: exact named outcome
first_failure: {operation: exact, status: exact, message: exact, request_id: exact}
completed_writes: []
failed_or_unverified_postconditions: []
resources_remaining: {run_owned: [], reused: []}
rollback: {possible: true|false, exact_plan: []}
cleanup: {status: separate-plan-and-approval-required}
owner: exact
warnings: []Unavailable HTTP status/request IDs are null, never invented. Diagnostic
warnings never replace the original failure; empty warnings may be omitted.
Never output content, credentials, tokens, keys, SAS, or connection strings.
Cleanup requires a separate cleanup plan and explicit approval; delete only
run-owned dependents in reverse order. Never delete reused resources, original
files/blobs, prior agent versions, or generated children independently of their
source. Search cleanup binds run-owned definition digest/current ETag.
Prompt cleanup binds exact run-owned version/connection digests; delete the
version first. Hosted cleanup is unsupported: return hosted-cleanup-unsupported,
retain resources/charges and name the owner/handoff. Never improvise teardown.
Interfaces and Search substrate add technical detail.
Requirements and compatibility
Works with: Claude Code, Claude apps, OpenAI Codex, GitHub Copilot, Cursor, Gemini CLI, Kiro, OpenCode, Goose, Amp, Roo Code, JetBrains Junie, Factory Droid, Devin (ex-Windsurf), Mistral Vibe, OpenHands, Letta
“Works with” means the tool reads the open Agent Skills format; a skill written for one tool may use features others lack.
Needs: Needs Python
The author says: Azure
Security
What our scanner noticed· Medium risk
- References to credential files
- Instructions that use the network
- Scripts that your agent may run
This skill includes scripts that your agent may run. Read them before you use it.
A static scan is not a guarantee. Skills are third-party content: review a skill before you let an agent use it.
Attribution and licence
- Created by
- Microsoft
- Publisher
- Microsoft (Official)
- Source
- microsoft/skills · .github/plugins/foundry-iq-skills/skills/foundry-iq · commit 0696600
- Licence
- MIT License (redistribution allowed)
- LICENSE (added by AutoGineer from .github/plugins/foundry-iq-skills/LICENSE)
- ATTRIBUTION.md (written by AutoGineer)
- Synced
AutoGineer is not affiliated with or endorsed by Microsoft or Microsoft.
Download ZIP
The ZIP holds the skill’s files, its licence files and an ATTRIBUTION.md. Download foundry-iq.zip