# Quickstart: Foundations in Inventory (047)

## Goal
Verify that foundations are synced as `InventoryItem` records when `include_foundations=true`, and are not synced when `include_foundations=false`.

## Preconditions
- Local dev via Sail is running.
- You have at least one tenant configured with valid Graph credentials.

## Steps

1. Run an inventory sync with foundations enabled
   - Use the Inventory UI sync button (Spec 046) with `include_foundations=true`, or run the relevant flow in your preferred admin path.

2. Confirm foundation nodes exist
   - In Inventory Items, filter `Category = Foundations`.
   - Confirm you can find:
     - Scope tags (`roleScopeTag`)
     - Assignment filters (`assignmentFilter`)
     - Notification templates (`notificationMessageTemplate`)

3. Confirm coverage shows both matrices
   - Open Inventory → Coverage.
   - Confirm both headings are present: “Policies” and “Foundations”.

4. Confirm name resolution (Spec 042.2)
   - Open a policy that references scope tags or assignment filters.
   - In the Dependencies section, confirm targets render with resolved display names sourced from local inventory.

## Troubleshooting
- If foundation types do not appear, confirm they exist in `config('tenantpilot.foundation_types')` and have Graph contracts in `config/graph_contracts.php`.
- If UI doesn’t reflect changes, rebuild assets if needed (`npm run dev` / `composer run dev`) and confirm cache is cleared.
