caldova-demo6
Skill0 starsChanged 28 days agoMITView on GitHub
Preflight, build/deploy, run, or reset this repository''s Caldova Logistics Demo 6 (Knowledge Hub vector search kept fresh by a HorizonDB AI pipeline, with a live failover step). Use when asked to run, preflight, pre-flight, deploy, build, open, reset, or check Caldova demo 6, the Knowledge Hub, the AI pipeline vector app, or the Caldova failover demo. Includes the Demo 3 preflight (Foundry embedding model and AI extensions) as a prerequisite, but does not run the Demo 3 demo itself.
- Reads credentials
In this repository4 other files it gives its agents.
The file
Show its rules and text
We split this skill into the rules it gives an agent
15 rules. About 0 are common, 7 are distinctive, and 8 are very specific to this project.
≈0
Common · estimate
Many files like this have a rule of this kind.
≈7
Distinctive · estimate
This author's own choices. Worth a look.
8
Very specific
Tied to their project's names, files or tools. Probably skip.
- Common
- Distinctive
- Very specific
- Very specific: line 9
Run this specific demo rather than asking the user to repeat its configuration.
- Very specific: line 10
Do not delegate routine execution.
- Distinctive: line 36
Never use the integrated/VS Code browser tools for this demo.
- Very specific: line 37
Ask explicit approval before anything billable, public, or destructive: creating/redeploying the App Service app, -EnableFailover, firewall …
- Very specific: line 41
Never print passwords, keys, or pwd.env values.
- Distinctive: line 56
Run these and report pass/fail for each.
- Very specific: line 87
If it is present, offer reset (section 5) before the user presents, because step 2 of the walkthrough adds that article as new.
- Distinctive: line 92
Run the prerequisites in order, stopping at the first failure.
- Very specific: line 105
If the only problem is that this machine's IP is not allowed, prefer (with approval) .\scripts\02-add-firewall-rule.ps1 -Subscription …
- Very specific: line 117
If it asks for -ApproveProvisioning (missing Foundry resources) or -ApproveClusterRestart (parameter group not attached), stop and ask.
- Distinctive: line 137
If section 1 shows the app exists, is running, and has failover enabled, do
- Distinctive: line 150
After deploying, rerun the section 1 checks.
- Distinctive: line 167
Make sure section 1 passes, then open the app in the default browser:
- Very specific: line 195
If preflight fails with extension "vector" is not allow-listed, the primary is caldova-logistics-replica-ha, which does not apply the …
- Distinctive: line 229
Not part of the default modes.
≈ “Common” is an estimate: at least 1 in 5 of the 350,495 skill files we read have a rule of the same kind, not the same words. “Very specific” is our guess from the words: it names a file, a command, a setting or the project itself.
Files
Caldova Demo 6: Knowledge Hub
Run this specific demo rather than asking the user to repeat its configuration.
Do not delegate routine execution. Work in PowerShell from
caldovalogistics\ unless noted. Read the
Demo 6 runbook before
executing anything beyond check or run.
Known configuration
| Setting | Value |
| Subscription | AzureSQL_bobward |
| Resource group / region | caldova-logistics-rg / westus3 |
| HorizonDB cluster | caldova-logistics, replicas caldova-logistics-replica-1 and caldova-logistics-replica-ha (roles swap on each failover) |
| Foundry account / embedding alias | caldova-logistics-ai / caldova-embedding |
| App Service web app | caldova-knowledge-hub-d1229495 (plan caldova-knowledge-hub-d1229495-plan, P0v3) |
| App URL | https://caldova-knowledge-hub-d1229495.azurewebsites.net/ |
| Local files (ignored) | .caldova-connection.json, pwd.env, .venv\ in caldovalogistics\ |
| App database role | knowledge_hub_app (password KNOWLEDGE_HUB_APP_PASSWORD in pwd.env) |
These are defaults, not permission to target something else if they fail.
Ground rules
- Present from Azure App Service, not locally. The App Service app is the
demo; only it can run step 5 (failover). Do not start a local copy unless the
user explicitly asks for
local. - Open pages in the user's default browser with
Start-Process <url>. Never use the integrated/VS Code browser tools for this demo. - Ask explicit approval before anything billable, public, or destructive:
creating/redeploying the App Service app,
-EnableFailover, firewall changes,-ApproveProvisioning,-ApproveClusterRestart,-ApproveQueryStatsRestart,-ResetDatabase,-ResetArticles, forcing a failover, or teardown. - Never print passwords, keys, or
pwd.envvalues. Scripts read them frompwd.envthemselves.
Mode selection
- "Is demo 6 ready?" /
check: section 1 only (read-only). - "Run the demo 6 preflight" /
preflight: sections 1–2. - "Deploy / build demo 6" /
deploy: sections 1–3. - "Run / open demo 6" /
run: section 1, then section 4. Run preflight or deploy only ifcheckfinds a problem, and ask first. - "Reset demo 6" /
reset: section 5. - "Run demo 6 locally" /
local: section 6.
1. Check (read-only)
Run these and report pass/fail for each; change nothing.
foreach ($p in '.caldova-connection.json', '.venv\Scripts\python.exe', 'pwd.env') { '{0}: {1}' -f $p, (Test-Path $p) }
Select-String -Path pwd.env -Pattern '^\s*KNOWLEDGE_HUB_APP_PASSWORD=' -Quiet
az account show --query "{name:name,user:user.name}" -o table
az horizondb firewall-rule list -g caldova-logistics-rg --cluster-name caldova-logistics --subscription AzureSQL_bobward `
--query "[].{name:name,start:properties.startIpAddress}" -o table
(Invoke-RestMethod 'https://api.ipify.org?format=json').ip
$a = 'caldova-knowledge-hub-d1229495'; $g = 'caldova-logistics-rg'
az webapp show -n $a -g $g --query "{state:state,host:defaultHostName}" -o table
az webapp config appsettings list -n $a -g $g --query "[?name=='KNOWLEDGE_HUB_CLUSTER_ID'] | length(@)" -o tsv
$u = "https://$a.azurewebsites.net"
Invoke-RestMethod "$u/health" -TimeoutSec 180
Invoke-RestMethod "$u/api/cluster"Ready means: local files exist; the allow-azure-services (0.0.0.0) rule
exists; the app is Running; /health is ok; /api/cluster reports
failover_enabled: true. The first request after a deploy or restart can take
2–3 minutes. A missing client-IP rule only matters for scripts run from this
machine (preflight, reset, local); the App Service app reaches HorizonDB
through the Azure-services rule.
Also confirm the walkthrough article is not left over from a rehearsal:
$s = Invoke-RestMethod "$u/api/search?q=frozen%20CO2%20on%20passenger%20flights&mode=hybrid"
$s.results | Where-Object title -eq 'Dry ice in air shipments'If it is present, offer reset (section 5) before the user presents, because
step 2 of the walkthrough adds that article as new.
2. Preflight
Run the prerequisites in order, stopping at the first failure. Each is idempotent but not read-only.
Parent Caldova preflight — only when
.caldova-connection.json,.venv, orpwd.envis missing, or the user asks. It always runs02-add-firewall-rule.ps1(adds aclient-<ip>rule and ensuresallow-azure-services), and also requires pgbench 17+ for Demo 5. Ask approval for the firewall change first:.\scripts\00-preflight.ps1 -Subscription AzureSQL_bobwardIf the only problem is that this machine's IP is not allowed, prefer (with approval)
.\scripts\02-add-firewall-rule.ps1 -Subscription AzureSQL_bobward.Demo 3 preflight (prerequisite only) — ensures the Foundry
caldova-embeddingdeployment, thevector,pg_diskann,pg_textsearch,azure_ai, andpg_durableextensions, and the AI pipeline parameter group. It (re)runs the Demo 3 sample pipeline, which makes billed embedding calls..\demo3-ai-pipeline\scripts\00-preflight.ps1 -Subscription AzureSQL_bobwardIf it asks for
-ApproveProvisioning(missing Foundry resources) or-ApproveClusterRestart(parameter group not attached), stop and ask; the restart interrupts every Caldova demo. Do not run the Demo 3 walkthrough.Demo 6 preflight — builds the
knowledge_hubschema, theon_changepipeline, seed articles, the 16-part failover handbook, and theknowledge_hub_approle, checksazure_aiis 2.3.2+, and waits until every article is searchable:.\demo6-vector-app\scripts\00-preflight.ps1Expect
Ready: True,Articles: 28/28 searchable(12 seed + 16 handbook parts), and all chunks embedded. Ifazure_aiis older than 2.3.2, report it; the fix (ALTER EXTENSION azure_ai UPDATE TO '2.3.2';) has no downgrade path, so ask first.
3. Build / deploy to App Service
If section 1 shows the app exists, is running, and has failover enabled, do
not redeploy unless the user asks or src/ changed since the last deploy.
Otherwise, with explicit approval (billable P0v3 plan; public app with no sign-in; the app's identity gets Contributor on the cluster):
.\demo6-vector-app\scripts\02-deploy-appservice.ps1 -AppName caldova-knowledge-hub-d1229495 -EnableFailoverReuse this app name; do not create a second app. -AllowedIpAddress restricts
access but the presenter network may reach Azure from a different address, so
only add it if the user asks and then confirm they can still open the site.
After deploying, rerun the section 1 checks.
Failover needs the HA standby replica. Check it read-only before promising step 5:
$sub = az account show --subscription AzureSQL_bobward --query id -o tsv
az rest --method GET --uri "https://management.azure.com/subscriptions/$sub/resourceGroups/caldova-logistics-rg/providers/Microsoft.HorizonDB/clusters/caldova-logistics/pools/DefaultPool/replicas?api-version=2026-01-20-preview" `
--query "value[].{name:name,role:properties.role,zone:properties.availabilityZone}" -o tableExpect one ReadWrite and at least one Read replica; which one is primary
changes after every failover. /api/cluster failover_ready_in is the number
of seconds until the next failover is allowed.
4. Run
Make sure section 1 passes, then open the app in the default browser:
Start-Process 'https://caldova-knowledge-hub-d1229495.azurewebsites.net/'/ is the step-by-step walkthrough (search → add Dry ice in air shipments →
auto-search → search again → ⚡ Update the handbook and fail over). /app
is the full app for the 5-minute demo script in the runbook. Remind the user:
one failover every 5 minutes, and the app is public with no sign-in.
To force a failover from a terminal instead of the button (asks to confirm):
.\demo6-vector-app\scripts\03-force-failover.ps15. Reset articles
With approval (re-embeds changed rows; small billed embedding cost):
.\demo6-vector-app\scripts\00-preflight.ps1 -ResetArticlesThen confirm Dry ice in air shipments no longer appears in search (section 1).
The in-app Reset demo button on /app does the same for articles.
If preflight fails with extension "vector" is not allow-listed, the primary
is caldova-logistics-replica-ha, which does not apply the cluster's parameter
group (empty azure.extensions, no pgaadauth; the parameter group itself is
correct, and a restart or re-applying it with az horizondb update does not
help). The extensions are already installed, so the app, pipeline, and
failover still work. Either fail back to replica-1 with approval
(03-force-failover.ps1, about 15 s), or reset through the app instead, which
only calls knowledge_hub.reset_demo() (restores the 12 seed articles and the
16 handbook parts) and creates no extensions:
$u = 'https://caldova-knowledge-hub-d1229495.azurewebsites.net'
Invoke-WebRequest "$u/reset" -Method Post -UseBasicParsing -MaximumRedirection 0 -SkipHttpErrorCheckA 303 to /app means success; a redirect to /?error=... means it failed.
Report the allow-list mismatch to the user; do not restart the cluster, fail
over, or recreate the replica to fix it without approval.
6. Local (only when explicitly asked)
Local runs cannot fail over. Start it detached so an interrupted tool call does not kill it, verify, then open it in the default browser:
.\demo6-vector-app\scripts\01-run-local.ps1 -Port 8020 # run with detach
Invoke-RestMethod http://127.0.0.1:8020/health
Start-Process 'http://127.0.0.1:8020/'Tell the user the process ID and stop it when they are done.
After the event
Not part of the default modes; mention it and ask before running anything:
remove the web app's Contributor role assignment on the cluster, remove the
extra HA replica (doubles compute cost; Azure portal → High availability →
Disabled), and optionally run
.\demo6-vector-app\scripts\99-teardown.ps1 -AppName caldova-knowledge-hub-d1229495
(drops the Knowledge Hub schema, pipeline, and role, and deletes the app and plan).
Does it work?
Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.
No reviews yet
People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.
- It worked
- Partly
- It didn't
Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.
Your trail
Files you open will collect here, so you can find them again.
Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.
Now do this for your own.
Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.

