# PSI Knowledge Base > Internal knowledge base for Progressive Surface Inc. (PSI), a custom industrial machine manufacturer. Contains business context, terminology, processes, data documentation, and guides for both human team members and AI agents. ## Quick Start - [AI Context Briefing](CLAUDE_CONTEXT.md): Start here. Essential business context, terminology summary, reading order. - [PSI Terminology](company/terminology.md): 80+ PSI-specific terms. Critical first read. - [About PSI](company/about.md): Company overview, products, organizational structure. ## Company — Who We Are - [About PSI](company/about.md): Company overview, products, industries served, organizational structure. - [Terminology](company/terminology.md): Comprehensive glossary of 80+ PSI-specific terms and acronyms. - [LDS Methodology](company/lds-methodology.md): Logical Design Structure — PSI's foundational engineering methodology (Six Ds, Products, project lifecycle, entity hierarchy, numbering systems). - [Engineering](company/engineering.md): Design workflow, ECN/NCN process, drawing lifecycle, engineering change management. - [Manufacturing](company/manufacturing.md): Build process, departments, assembly workflow, shop floor operations. - [Quality](company/quality.md): Redbook system, quality metrics, corrective action workflow. - [Build Pipeline](company/build-pipeline.md): 8-stage machine build pipeline from order entry through shipment — stage details, typical durations, data sources per stage, common delay patterns. - [Process Services Fleet](company/process-services-fleet.md): Inventory of 31 PSI-owned machines across 6 production lines in the Process Services facility — job/serial catalog by line, standalone machines, Argo inspection systems, 12 retrofit projects, IoT connectivity plans. ## Applications — What We Build - [Applications Overview](applications/index.md): All PSI software — web apps, APIs, CLI tools, desktop applications. Includes technology patterns. - [PSI Design System](applications/design-system.md): Unified visual language for all PSI internal web apps — design tokens (colors #027A54 brand green, #16A34A success, type, spacing, contextual density via --ps-scale), 46 UI components (buttons, forms, tables, menus, tooltips, badges, toasts, banners, KPIs, modals, combobox, date picker), layout patterns, 4 example app screens. Repo: C:\git\psi-design-system. AGENTS.md has full class reference for AI agent use. - [Redbook Web](applications/redbook-web.md): RFC management web app — create, edit, search quality issues, department status tracking, ECN/NCN linking. - [Customer Service Manager](applications/psi-service.md): Customer service ticket triage web app (psi-service) — replaces the legacy VB6 PTIServiceTicket. SLA-colored priority board with client-side time-decay priority, filters, and read-only ticket detail. Reads SERVICE.1287 via PSI.UniData.API. Phase 1 (read-only board) built; create/edit/contacts/reports are later phases. - [PSI Explorer](applications/psi-explorer.md): Unified web portal for PSI manufacturing intelligence — BOM viewer with real-time inventory, PLC Fleet dashboard, Machine Explorer (CS/field service portal), "Ask the Fleet" AI chat panel (Azure OpenAI + MCP tools), and Lead Time Analysis dashboard (8 views: root causes, era comparison, correlation, dept flow, dept heatmap, findings, timeline, explorer). - [Project Explorer](applications/project-explorer.md): Machine project tracking, customer 360, fleet analytics, quote revenue, sales analytics, lifetime value modeling. - [ARGO Analytics](applications/argo-analytics.md): ARGO inspection machine analytics dashboard (ARGO4/5/6, 22M parts) — yield monitoring, SPC control charts, defect Pareto, 57x57 surface heatmaps, anomaly detection, feature importance, shift/labor correlation, multi-machine comparison. Parquet data lake + DuckDB + FastAPI + React on Azure VM (ps-argo-etl). ETL from Azure File Share (psargostorage). - [PSI DataSync](applications/datasync.md): Custom distributed file sync — six ARGO PCs push Intego measurement data (geometry CSVs + daily stats) to Azure Files (psargostorage/argodatastore). .NET 8 agent (Windows Service) + Node.js/Express server on Azure App Service + Azure SQL state index + React dashboard. Replaces GoodSync Control Center; eliminates per-file Azure transaction costs via server-side state index. - [PSI DataSync — Ops Runbook](applications/datasync-operations.md): On-call guide for diagnosing and resolving DataSync incidents — quick 60-sec health check, incident playbook (server down, DB full, runner offline, sync stalled, auth expired, all-agents-failed), log locations with retention, routine ops (seal/unseal, credential rotation, reconcile, release promotion), and known failure modes from recent history. - [PSI DataSync — DR Runbook](applications/datasync-disaster-recovery.md): Disaster recovery for catastrophic DataSync failures — proposed RTO/RPO (pending customer sign-off), backup inventory, recovery procedures for state-index loss, App Service rebuild, Azure Files share loss, ARGO re-enrollment, dependency cascade map, rehearsal schedule. - [PSI Data Pipeline](applications/psi-data-pipeline.md): Python ETL on PS-PROXY — 8 scheduled jobs moving AFTEC + UniData + vendor-API + network-share data into Azure SQL `PSI_Analytics`. Two-tier SQLite (psi_ingest.db cache + psi_analytics.db rebuild) plus Azure SQL passthrough. Orchestrated via Prefect work pool (`psi-pipeline`) with a live operator dashboard at explorer.progressivesurface.com/#pipeline. Mid-migration from GH Actions scheduling onto Prefect-only execution. - [PRGJSMES](applications/prgjsmes.md): Manufacturing Execution System for PRG Industries — real-time production tracking for thermal spray coating operations across pre-grit, thermal, and Argo label-making stations. Includes an audit + remote-support subsystem (`/admin/audit`, `/admin/presence`, in-page Get Help button) and a Workcenter → Station device registry (`/admin/devices`, `/admin/workcenters` — printers, scales, Intune workstations, peripheral swap); see the "Audit & Remote Support" and "Admin UI — unified Devices page" sections. - [Progressive Data View](applications/progressive-data-view.md): Business Central schema explorer — interactive table/field/relation visualization across 5 views (list, graph, ERD, pages, coverage), live BC API with static fallback, IndexedDB caching. - [ERP Migration Tool](applications/erp-migration.md): AFTEC to Business Central data migration platform (go-live Jan 2027) — field mapping with stacked transforms, automated export/import pipeline via OData $batch, table scoping, dependency management, wave planning, readiness testing. - [Machine Intelligence MCP Server](applications/mcp-server.md): MCP server exposing AI agent tools for PSI machine data — BOM, PLC analysis, fault diagnostics, project provenance, electrical drawings, inventory, cost analysis, supply chain, obsolescence. Consumed by PSI Explorer "Ask the Fleet" web chat, Claude Code, and Claude Desktop. Supports stdio (local) and HTTP (network) transports. See page for current tool count. - [L5X Tools](applications/l5x-tools.md): PLC program analysis and conversion toolchain — Rockwell l5xgit (ACD→L5X via official SDK), Python ACD analyzer, Node.js L5X parser. Powers MCP server PLC analysis. Fleet conversion: 90/489 projects convertible with v34, 178 more with v20. - [PLC Fleet Catalog](applications/plc-fleet-catalog.md): Complete inventory of all PLC/controller software across the PSI fleet — 1,391 projects, 2,902 entries. AB Logix 5000 (507), SLC 500 (414), CNC (248), Fanuc (116), ABB (136). Version distribution, ACD scoring system, conversion pipeline scripts, project numbering. - [PLC Fleet Archive](applications/plc-fleet-archive.md): Git-backed PDM for PLC code — automated version control, structural diffing, and change attribution for 489+ Allen-Bradley projects. Nightly scan detects K: drive changes, analyzes programs, tracks who changed what. 88 projects archived with 100,226 rungs tracked. - [PLC Conversion Runner](applications/plc-runner.md): HTTP service on PS-PLCRunner (port 3200) wrapping l5xgit.exe for on-demand and scheduled ACD-to-L5X conversion. REST API with job queue, fleet scanning, Python fallback. Bridges MCP Server to Rockwell SDK conversion. - [Procisely](applications/procisely.md): PSI-owned URL shortener and asset link management platform — branded short URLs at procisely.com, QR code stickers for machines, pattern-based routing for serial numbers, admin UI in PSI Portal. Public redirect engine (Node.js/Hono) + private admin (React/Express). 100 tests. - [PSI Portal](applications/psi-portal.md): Central homepage and application launcher for all PSI web applications. Includes Calibration, CapEx, Badge Provisioning, and Procisely admin modules. - [CSM Board](applications/csm-board.md): Hosted multi-user Claude Work Board at board.progressivesurface.com. Federated — each developer runs `csm agent` (from PSI.CSM WinGet package) which streams projects/sessions/git/GHE+ADO overlay over an authenticated WebSocket. Spawn an interactive `claude --remote-control` session from any issue and drive it from claude.ai/code on any device. Ships an MCP server (`csm-board/mcp/`) giving Claude Code full UI parity — manage todos/projects/sessions and spawn/resume sessions, reusing the agent's token cache. - [UniData API](applications/unidata-api.md): REST API gateway for AFTEC/UniData database — BOM, parts, inventory, redbook endpoints. - [UniCacheXML Service](applications/unicache-xml.md): Cron-scheduled Windows Service on PS-WS3 generating 40+ XML cache files from UniData/AFTEC for ProApps consumption, plus email notifications and job request processing. - [PSI Export CLI](applications/cli-export.md): Command-line data export tool with WCF, UODOTNET, and U2 Toolkit backends. - [Wiki Site](applications/wiki-site.md): This wiki — Quartz-based static site deployed to Azure Static Web Apps. - [ProApps](applications/proapps.md): 35+ WPF desktop applications for ERP operations (BOM Explorer, Work Order Manager, etc.). - [Pro Update](applications/pro-update.md): Self-updating desktop client for ProApps — 3-channel deployment (Alpha/Beta/Stable), service management, telemetry, CI/CD integration. - [CNC Program Manager](applications/cnc-program-manager.md): Per-machine shop-floor WPF app that pulls a part's NC program, setup, tools, and clamp/part images from the MFG/CNC file shares and uploads to the machine (Haas/Mazak/Waterjet controller from C:\Apps\CNCProgramManager.config). Data source is the file shares, not AFTEC. Links to Work Order Manager loosely via the PSI broadcast bus (BroadcastMessageType.ePartNo) — auto-loads the part broadcast on Dispatch List row select; carries only the part number, no WO/operation context. - [MES](applications/mes.md): Manufacturing Execution System — shop floor operations, Windows App Service with private endpoint. - [Redbook Analysis](applications/redbook-analysis.md): Quality analytics pipeline — data export, AI classification, Streamlit dashboard. - [Redbook Photos](applications/redbook-photos.md): Photo storage service for Redbook RFC attachments — Node.js, publicly accessible, Application Insights enabled. - [Shipping Photos](applications/shipping-photos.md): Photo storage service for shipping documentation — Node.js, publicly accessible. - [NFC TAP Bridge](applications/nfc-tap-bridge.md): Azure Function creating Temporary Access Passes for NFC-based kiosk sign-in — .NET 8 isolated, Microsoft Graph SDK, group-restricted, Key Vault secrets, private endpoint only. Android NFC launcher companion app on Zebra TC52 scanners. - [PSI Badge Provisioner](applications/badge-provisioner.md): WPF desktop tool for IT to register HID C2300 FIDO2/WebAuthn security keys in Entra ID for PSI employees — single and batch provisioning, step-up MFA, SQL audit log, Graph beta API. Also captures the card's PC/SC UID (FF CA 00 00 00) and writes it to the Entra progressivesurface_badgeUid schema extension for PRGJSMES badge-tap approvals. - [PSI Notify Bot](applications/psi-notify-bot.md): Shared Teams bot identity for all PSI automation alerts and notifications. Single bot/app reg, secrets in ps-certificates-kv, two chat patterns (per-event group chats for deploys, persistent group chats for ops alerts). Powers ProApps beta-deploy notifications and the IT Critical Notifications channel. - [Egnyte STP Batch Report Sync](applications/egnyte-stp-sync.md): Consumption Logic App that uploads approved STP batch reports from PSI's S: drive to Bloom Energy's Egnyte `/Shared/Daily Batch Reports/` every 5 minutes. Uses Microsoft-published Egnyte connector (no Bloom Energy IT involvement) + on-prem data gateway. Alerts via PSI Notify Bot to IT Critical Notifications. - [Zebra Tracking](applications/zebra-tracking.md): Locate powered-off Zebra TC53e mobile computers at GR via Meraki Scanning API V3 BLE webhooks. .NET 8 Minimal API + React 19 + Azure SQL on Azure App Service. Each TC53e has a Zebra BLE-enabled battery broadcasting an AltBeacon with PSI UUID `020B5C19-...` and per-device hex minor; Meraki APs triangulate when 3+ hear it; backend resolves minor→device, stores 90-day history, surfaces last-known X/Y on a floor map. Opt-in Entra/MSAL auth. Bicep infra. Alpha as of 2026-05-21. ## Development — How We Build - [PSI Web App Compliance Standard](development/webapp-compliance-standard.md): Canonical compliance baseline for any human or AI agent implementing PSI web apps — approved auth profiles, deployment/security requirements, validation rules, exceptions, and required documentation updates. - [Deploy to Azure](development/deploy-to-azure.md): PSI web apps architecture and Azure deployment — app inventory, tech stack, network architecture, Static Web Apps, App Service, private endpoints, auth, secrets, CI/CD, auto-versioning, self-hosted runners. - [PSI DNS Standards](development/dns-standards.md): Canonical DNS reference — DFS share paths, public vs privatelink zones, the two-zone privatelink rule (Azure Private DNS + AD DCs), app + app.scm records, deployment-slot DNS, FQDN-for-on-prem rule, Cisco Umbrella interception gotcha, new-app DNS checklist, and DNS failure→cause table. - [U2 Toolkit Migration](development/u2-toolkit-migration.md): UniData access migration from WCF/UODOTNET to U2 Toolkit for .NET. - [Schema Change Policy](development/schema-change-policy.md): Expand-contract pattern for destructive SQL migrations — how the linter + CODEOWNERS + PR template enforce rollback-safe schema changes. - [PRGJSMES Operational Runbook](development/prgjsmes-operational-runbook.md): On-call playbooks for PRGJSMES alerts (health check, 5xx storms, CPU/memory, DB connections), rollback procedures (slot re-swap, PITR, full Line 1 paper fallback), monitoring pointers, and escalation contacts. - [Agentic Implementation](development/agentic-implementation.md): AI-assisted development methodology — how we use Claude Code for production work. - [Claude Code](development/claude-code.md): Claude Code integration, skills, commands, and PSI-specific configuration. - [Claude + Azure DevOps](development/claude-azure-devops.md): How Claude interacts with Azure DevOps — AAD auth pattern, `az boards` CLI workflows, creating/updating work items, REST API fallback, Git Bash gotchas. - [Web App Testing](development/webapp-testing.md): Testing best practices for React/TypeScript — Vitest, Testing Library, coverage thresholds, CI integration. - [Shared Libraries (@progressivesurface/* SDK packages)](development/shared-libraries.md): How to consume PSI's shared frontend packages (@progressivesurface/ui, @progressivesurface/auth) from GHE Packages — .npmrc scope setup, CI auth via GITHUB_TOKEN, one-time local classic-PAT setup (gh's OAuth token is rejected), identity-based publish, SemVer/changesets versioning, owner, migration guidance. - [Azure App Proxy Evaluation](development/azure-app-proxy-evaluation.md): Evaluation of Microsoft Entra Application Proxy for secure external access — architecture, licensing, app assessment, implementation plan. - [Azure App Proxy Implementation](development/azure-app-proxy-implementation.md): Step-by-step implementation guide for publishing PSI apps via App Proxy — connector setup, Graph API commands, SPA+API architecture, DNS fixes, code patterns, troubleshooting. - [Azure Resource Map](development/azure-resources.md): Complete mapping of Azure resources to GitHub repos — app registrations, client IDs, GitHub Actions secrets, resource groups, VMs, runners, private endpoints, Key Vault, networking. - [Azure Security & Monitoring](development/azure-security.md): Security audit, NSG rules, Application Insights status, alert rules, Key Vault inventory, EasyAuth configuration, remediation history. - [Deploy Android APKs](development/deploy-android.md): Android APK CI/CD — Capacitor build pipeline, signing keystore setup, GitHub Actions workflow template, Gradle configuration, device installation. Reusable pattern for any PSI app needing native Android builds. - [Deploy ProApps](development/deploy-proapps.md): Desktop application CI/CD — GitHub Actions release pipeline, version bumping, network share deployment, beta releases, Application Manager integration, app onboarding waves. - [Deploy BC Extensions](development/deploy-bc-extension.md): Business Central AL extension CI/CD — reproducible build with standalone alc.exe (not AL-Go), Automation API 3-step extensionUpload, sandbox-first deploy, the per-environment Microsoft Entra Application registration requirement, deploy SP + permission sets (D365 AUTOMATION + EXTEN. MGT. - ADMIN), object ID ranges, troubleshooting. Reusable across all PSI BC repos. - [Teams Notifications (PSI Notify Bot)](development/teams-notifications.md): Shared PSI alert channel — bot identity, Graph permissions, Key Vault secrets (psi-notify--*), two chat patterns (per-event vs persistent), bootstrap script for new alert chats, three Graph chat-creation pitfalls, consumer registry. Powers ProApps deploy notifications and IT Critical Notifications. - [Wire a New Alert Consumer to PSI Notify Bot](guides/wire-notify-consumer.md): Step-by-step for hooking a new PSI automation (scheduled task, web app, CI/CD workflow, ad-hoc script) into PSI Notify Bot. Uses egnyte-stp-sync as the worked example — module import path, KV secrets fetch via managed identity, SyncNotifier.psm1 wrapper, rate-limiting pattern, message body templates, smoke test, consumer registration. - [Code Your First Notification (PSI Notify Bot tutorial)](guides/notify-bot-first-notification.md): Hands-on beginner tutorial — zero to a working Teams message in ~15 minutes. Prereqs (KV access, AAD object ID lookup), bootstrapping a personal sandbox chat, writing a hello-world send script, applying the house alert style, four-layer architecture sketch, common first-time failures (Forbidden on KV, ≥2-unique-members error, 401/403 on send), self-check questions. Companion to wire-notify-consumer.md. - [Onboard New App](development/onboard-new-app.md): Step-by-step guide to integrating a new desktop app into the PSI CI/CD pipeline — registry config, workflow setup, first deploy, Pro Update integration, beta testing. - [Creating a New Tool](development/new-tool-guide.md): Decision tree for new tools — WinGet (CLI/dev tools) vs Pro Update (desktop apps) vs Azure (web apps). Step-by-step for creating a CLI tool with auto-publish to PSI WinGet. Templates for Python and .NET. - [PRIMS/CITS Pro PC Build Automation](development/pc-build-automation.md): Automated build of a machine-HMI PC at the bench — replaces the manual co-op OneNote/"Part 1/2/3" procedure. Two-environment model (Stage on a workstation, Build on the offline bench Dell), one-command USB build (GUI/CLI, source-map-driven from S:\…\Prims Pro\Installation\), Win11 24H2 OOBE bootstrap.cmd (sysprep), hands-off orchestrator with automated SQL/DB-restore + install resilience, post-build birth-certificate validation, and a personality-capsule lifecycle for backing up/migrating/replacing existing machine PCs (vs hardware-bound Macrium). CD publishes to the Co-op share. Repo: ProgressiveSurface/psi-pc-setup. - [PSI WinGet Source](development/winget-source.md): Private WinGet REST package source — .NET 8 API, Azure SQL, admin web UI, Intune deployment, CI/CD publish workflow, download proxy, package management. - [SQL1 Logging & Session Stability](development/sql1-logging-risk.md): Critical architectural findings — SQL1 in performance-critical path via synchronous log4net writes (bufferSize=0, DEBUG level, 172M rows), UDNetSession null-check gaps causing endemic NullReferenceExceptions, cascading failure feedback loop. - [Pipeline Infrastructure](development/pipeline-infrastructure.md): How the PSI data pipeline runs — PS-PROXY server (GH Actions self-hosted runner, Prefect Server, UniData API), the dual-fire scheduler issue (GH Actions + Prefect scheduling the same 6 jobs), two-tier SQLite (psi_ingest.db + nightly-rebuilt psi_analytics.db) → Azure SQL PSI_Analytics, the four-step scraper pattern, and authentication. ## Data — Our Data - [PSI Data Brain](data/data-brain.md): **Start here for any data question.** Master reference for ALL PSI data — what exists, where it lives, how to access it, what questions it answers, how sources connect. The data knowledge graph. Includes "Last Verified" dates per section, analysis history, and detailed schema notes (tslabor2 dept/op codes, PO promise date gotchas, Fabric versioning gap). Machine-readable companion: [data-brain.yaml](data/data-brain.yaml). - [Data Dictionary](data/data-dictionary.md): Field definitions for analytics output tables (redbooks, product_deployment_history, project_reuse_metrics, part_quality_metrics). - [Redbook Schema](data/redbook-schema.md): REDBOOK.1287 UniData table field reference, subroutines, C#/TypeScript models, department position mapping, business rules. - [Fabric ProgressiveDataSet](data/fabric-progressive-dataset.md): Golden semantic model in Microsoft Fabric — 33 tables, 9.6M rows from AFTEC. Workspace IDs, DAX query examples via Azure CLI, table schemas, report inventory, Azure SQL migration status. - [Inventory & Work Orders](data/inventory-and-work-orders.md): How inventory flows through AFTEC — WO numbering/prefixes, AFTEC inventory tables (ITEMQTY, INVHIST, OPENWO), transaction type codes, floor stock cost leakage, IBM (Issued But Missing) tracking, API endpoints. - [PSI.All Architecture](data/psiall-architecture.md): .NET monorepo codebase — solution structure, shared libraries, UniData subroutine catalog, data access patterns (WCF vs U2 Toolkit). ## Reference — Deep Technical Catalogs - [AFTEC Subroutine Catalog](reference/aftec/index.md): Complete catalog of 370 VB_* UniBasic subroutines across 21 domains with safety classifications, patterns, and API call examples. - [Accounting](reference/aftec/accounting.md): General Ledger and Invoice processing (4 active subs). - [BOM](reference/aftec/bom.md): Bill of Materials — BOM explosion, component lookup, where-used (1 active subs). - [Contacts](reference/aftec/contacts.md): Contact management — CRUD operations on CONTACT.1287 (1 active subs). - [Customers](reference/aftec/customers.md): Customer master data — account info, credit, 0301 records (3 active subs). - [Employees](reference/aftec/employees.md): Employee records, timesheets, labor history (1 active subs). - [Engineering](reference/aftec/engineering.md): PDM/XREF — engineering data management and cross-references (6 active subs). - [General](reference/aftec/general.md): Uncategorized subroutines (189 active subs). - [Inventory](reference/aftec/inventory.md): Inventory management — bins, adjustments, transfers, quantities (5 active subs). - [Parts](reference/aftec/parts.md): Part/Product master data — part info, descriptions, search (9 active subs). - [Payroll](reference/aftec/payroll.md): Payroll processing and direct deposit (1 active subs). - [Projects](reference/aftec/projects.md): Project/Job management and master scheduling (6 active subs). - [Purchasing](reference/aftec/purchasing.md): Purchase Orders — PO inquiry, open PO tracking (9 active subs). - [Quality](reference/aftec/quality.md): Quality/Redbook/NCN/ECN — engineering changes, non-conformance (4 active subs). - [Quotes](reference/aftec/quotes.md): Quoting — SPN quotes, pricing (3 active subs). - [Routing](reference/aftec/routing.md): Manufacturing routing and operations (2 active subs). - [Sales Orders](reference/aftec/sales-orders.md): Sales Order processing — SO details, open orders, shipping (3 active subs). - [Service & Maintenance](reference/aftec/service-maint.md): Service, maintenance, and IT request management (3 active subs). - [Shop Floor](reference/aftec/shop-floor.md): Shop floor control and tracking (12 active subs). - [Utilities](reference/aftec/utilities.md): System utilities — table lookups, conversions, system status (13 active subs). - [Vendors](reference/aftec/vendors.md): Vendor master data and inquiry (2 active subs). - [Work Orders](reference/aftec/work-orders.md): Work Order management — creation, status, traveler data (9 active subs). ## Analytics — Metrics & Dashboards - [Dashboards](analytics/dashboards.md): Redbook Analysis Dashboard (v7) — tabs, sidebar controls, admin features, running locally. - [Methodology](analytics/methodology.md): Metric calculations — Quality %, Quality Cost, stage multipliers, AI classification, material costs, design reuse, risk scoring. - [Lead Time Analysis 2026](analytics/lead-time-analysis-2026.md): Root cause analysis of machine ship lead time increase — stage-by-stage breakdown, department bottlenecks, vendor OTD trends, labor capacity analysis. Data fusion across 11 sources / 9.6M records. - [Quarterly Business Metrics](analytics/quarterly-business-metrics.md): Per-quarter shipped revenue, booked sales, backlog, and "soup line" (booked but no substantial work yet) for PSI machine projects, 2010-Q1 to current. Methodology, data sources, validation anchors, refresh workflow. - [Project1287 Data Patterns](data/project1287-data-patterns.md): Practical reference for analyzing PSI project data — sister jobs (shared engineering), post-ship labor tail (~7.5%, mostly Dept 120 install), PSI internal projects (no ShipDate ever), ShipDate hygiene (use WarrentyStartDate fallback), stale ghost records, install-piggyback jobs, OrderValue vs OrderTotal, and on-time scoping. Read this BEFORE writing any analytics that touches PROJECT.1287. - [Lead Time Investigation Log](analytics/lead-time-investigation.md): Knowledge build log for the lead time investigation — data sources examined, hypotheses, findings. - [Notes-Based Obsolescence Scan](analytics/notes-based-obsolescence-scan.md): Surfaces hidden obsolete parts from PRODUCT.NOTES free text — regex scan of 5,447 parts across 8 GKN El Cajon machines found 368 with replacement language but no OBS flag. Batch endpoint (91s), findings by category (AB contactors/relays/servos, Grove reducers, Lumberg cables, FANUC battery), operational lessons (UniData session-pool exhaustion). ## Guides — How-To Tutorials - [Getting Started](guides/getting-started.md): New user orientation for the wiki (15 min). - [Developer Setup](guides/dev-setup.md): One-command setup for Claude Code, PSI skills, and development tools. - [Install Claude Code Skills & MCP](guides/install-claude-skills.md): One-command install of PSI-specific Claude Code skills (psi-context, cowork-best-practices, quality-workflows, controls-engineering, proposal-writing, azure-devops, fresh-eyes) AND PSI MCP servers (psi-machine on PS-PROXY — 64 tools for BOM/PLC/drawings/inventory/fleet). Merges into ~/.claude/.mcp.json without clobbering existing entries. No GitHub access required. - [Connect AI Agents](guides/connect-ai.md): Access PSI machine intelligence — "Ask the Fleet" web chat (zero setup), Claude Code MCP config, Claude Desktop setup, wiki context. - [Connect to UniData API](guides/connect-to-unidata-api.md): How to connect a web app to PSI.UniData.API — dev endpoints for local development, MSAL.js auth for production, Entra registration request process, CORS setup. - [Deploy FAQ](guides/deploy-faq.md): Quick-answer FAQ for desktop app publishing — release channels, beta setup, promoting, Teams notifications, troubleshooting. - [Build & Ship a BC Extension](guides/build-bc-extension.md): Hands-on developer tutorial — zero to a BC AL extension deployed to sandbox via CI/CD in ~30 min. Scaffold app.json + object IDs, use the CI build workflow as the authoritative compile (CDN symbol fetch sidesteps the flaky VS Code AL:Download Symbols step), reuse the shared bc-extension-deploy SP (no new Azure plumbing), push to deploy, verify, common first-time failures, self-check. Companion to the development/deploy-bc-extension runbook. - [Edit This Wiki](guides/edit-wiki.md): How to add and maintain content, wiki link syntax, page templates. - [Obsidian Tips](guides/obsidian-tips.md): Keyboard shortcuts, graph view, search tricks, plugins. - [Re-Point Power BI to Azure SQL](guides/powerbi-repoint-to-azure-sql.md): Step-by-step guide to migrate Power BI reports from Fabric ProgressiveDataSet (CSV/gateway) to Azure SQL PSI_Analytics — two approaches, validation checklist, troubleshooting. - [Training Presentation](guides/training-presentation.md): Slide-style team training for wiki onboarding. - [Procisely User Guide](guides/procisely-guide.md): How to create short URLs, generate QR code stickers for machines, bulk import serial numbers, manage pattern rules and templates. Includes common workflows (ship machine, batch onboard, campaigns, decommission).