diff --git a/public/llms.txt b/public/llms.txt deleted file mode 100644 index 30f1a1d..0000000 --- a/public/llms.txt +++ /dev/null @@ -1,10 +0,0 @@ -# decipher.ms - -> Independent Microsoft advisory practice run by a former Microsoft Principal Engineer. Straight answers on M365, Azure, Dynamics, and Copilot — with no reseller incentives. - -decipher.ms helps companies make better Microsoft decisions. Services include expert calls, written second opinions, and in-depth technical briefs on licensing and product strategy. Founded by Pedro Paulo Vezza Campos, former Tech Lead on the Microsoft 365 Substrate AI Platform. - -## Pages - -- [Home](/): Overview of services, pricing, approach, and how to request a briefing. -- [About](/about): Background on founder Pedro Paulo Vezza Campos, his Microsoft career, and areas of expertise. diff --git a/public/sitemap.xml b/public/sitemap.xml deleted file mode 100644 index bb84a27..0000000 --- a/public/sitemap.xml +++ /dev/null @@ -1,13 +0,0 @@ - - - - https://decipher.ms/ - weekly - 1.0 - - - https://decipher.ms/about - monthly - 0.8 - - diff --git a/src/assets/briefs/dataverse-security/access-levels-key.webp b/src/assets/briefs/dataverse-security/access-levels-key.webp new file mode 100644 index 0000000..ff4a659 Binary files /dev/null and b/src/assets/briefs/dataverse-security/access-levels-key.webp differ diff --git a/src/assets/briefs/dataverse-security/append-vs-append-to.webp b/src/assets/briefs/dataverse-security/append-vs-append-to.webp new file mode 100644 index 0000000..5bb325f Binary files /dev/null and b/src/assets/briefs/dataverse-security/append-vs-append-to.webp differ diff --git a/src/assets/briefs/dataverse-security/building-blocks.webp b/src/assets/briefs/dataverse-security/building-blocks.webp new file mode 100644 index 0000000..f7f4cc1 Binary files /dev/null and b/src/assets/briefs/dataverse-security/building-blocks.webp differ diff --git a/src/assets/briefs/dataverse-security/inherited-security-roles.webp b/src/assets/briefs/dataverse-security/inherited-security-roles.webp new file mode 100644 index 0000000..681e8d3 Binary files /dev/null and b/src/assets/briefs/dataverse-security/inherited-security-roles.webp differ diff --git a/src/assets/briefs/dataverse-security/objectives.webp b/src/assets/briefs/dataverse-security/objectives.webp new file mode 100644 index 0000000..5df7e23 Binary files /dev/null and b/src/assets/briefs/dataverse-security/objectives.webp differ diff --git a/src/assets/briefs/dataverse-security/owning-vs-access-teams.webp b/src/assets/briefs/dataverse-security/owning-vs-access-teams.webp new file mode 100644 index 0000000..71a5cde Binary files /dev/null and b/src/assets/briefs/dataverse-security/owning-vs-access-teams.webp differ diff --git a/src/assets/briefs/dataverse-security/user-team-privilege-rollup.webp b/src/assets/briefs/dataverse-security/user-team-privilege-rollup.webp new file mode 100644 index 0000000..b46cbf2 Binary files /dev/null and b/src/assets/briefs/dataverse-security/user-team-privilege-rollup.webp differ diff --git a/src/components/BriefingForm.astro b/src/components/BriefingForm.astro index 43c445b..64ca0d5 100644 --- a/src/components/BriefingForm.astro +++ b/src/components/BriefingForm.astro @@ -1,5 +1,9 @@ --- -const ENGAGEMENT_OPTIONS = [ +import type { EngagementKey } from "@/lib/engagements"; + +// Values are typed against the canonical EngagementKey so a renamed tier fails +// to compile here instead of silently mismatching the server validation. +const ENGAGEMENT_OPTIONS: { value: EngagementKey; label: string }[] = [ { value: "expert-call", label: "Expert Call — 30-min call, $500" }, { value: "second-opinion", label: "Second Opinion — short brief, $2,000" }, { value: "technical-brief", label: "Technical Brief — in-depth brief, $3,500" }, @@ -90,8 +94,13 @@ const errorClass = "mt-2 text-xs text-accent font-bold";