Starter prompt — Blog Notebook follow-ups¶
The 8 May 2026 session shipped the Field Notebook layout to all 17 blog posts (live, verified, zero regressions). During the post-deploy SME audit, three issues were flagged for a separate session because they are site-wide pre-existing bugs, not notebook regressions, and need careful schema-validation testing before deploy.
Copy the prompt below into a new Copilot CLI session (preferably with Claude Opus or Claude Sonnet to keep the careful-deploy posture).
Copy this to start the session¶
I'm picking up the blog notebook follow-up work flagged in the 8 May 2026 SME audit.
Context to read first (in this order):
C:\ssClawy\learning-docs\docs\reference\blog-notebook-system.md— the deep playbook for what was built. Read the "Known issues — flagged for future sessions" section in particular.C:\Users\ssutheesh\.copilot\session-journal.md— the top entry titled "Blog Notebook rollout · 17 posts live · 2 deploys".C:\ssClawy\aguidetocloud-revamp\layouts\partials\seo-jsonld.html— the partial that has the bug.What needs fixing — three flagged items, in priority order:
🔴 P1 — JSON-LD nested-quote bug (site-wide)¶
Hugo 0.159
jsonifyis producing"\"value\""instead of"value"for.Title,.Description,.Site.Params.author,.Site.Title, and any string passed through| jsonify. This corrupts every BlogPosting / FAQPage / Article / BreadcrumbList / VideoObject schema across the entire site (100+ pages, not just blog).Live evidence — fetch
https://www.aguidetocloud.com/blog/microsoft-365-e7-frontier-suite-everything-you-need-to-know/and look at the JSON-LD<script>blocks. You'll see"headline":"\"Microsoft 365 E7...\""instead of clean"headline":"Microsoft 365 E7...".Note: the manual
<title>tag and OG/Twitter meta tags use"{{ .Title }}"(manually wrapped) and DO NOT have this bug — only| jsonifydoes.Fix path:
- Reproduce locally on the dev server. Run
pwsh C:\ssClawy\aguidetocloud-revamp\scripts\hugo-safe.ps1 server --port 1314and curl one blog post's JSON-LD to confirm the nested quotes.- Test the fix on a single post first. Don't change all schemas at once.
- Try options in this order:
- Option A: replace
{{ .Title | jsonify }}with{{ printf "%q" .Title | safeJS }}(Go-style quote — works for ASCII, may need adjustment for Unicode)- Option B: replace
{{ .Title | jsonify }}with"{{ .Title | replaceRE "\"" "\\\"" }}"(manual JSON escape)- Option C: cast to string first —
{{ .Title | string | jsonify }}- Verify with two tools BEFORE pushing:
- Schema Validator — paste the live URL after deploy. Expect 0 errors.
- Google Rich Results Test — expect valid BlogPosting + FAQ.
- Apply to all 8 schema blocks in
partials/seo-jsonld.htmlonce the fix pattern is confirmed.- Spot-check 5 posts manually by fetching live HTML and parsing JSON-LD with
ConvertFrom-Json. The parsed values should NOT have wrapping quotes.- Bump
cache_versionand deploy following the standard 19-step pre-push checklist.Affected partial:
C:\ssClawy\aguidetocloud-revamp\layouts\partials\seo-jsonld.html(8 schema types: WebSite, Organization, Person, BreadcrumbList, VideoObject, BlogPosting, FAQPage, SoftwareApplication).Do not touch: Mermaid (sacred), notebook layout files (working), practice exam pages (SLA).
🟡 P2 — SEO content lengths (16 posts)¶
16 of 17 blog posts have titles >75 chars (Google SERPs truncate at ~60). 10 have meta descriptions >175 chars (Google truncates at ~155–160).
Worst offenders: - January 2026 updates title 106 chars — "What's New in Microsoft 365 Copilot – January 2026 | 30 Updates You Shouldn't Miss" - April 2026 updates title 104 chars - Licensed train-the-trainer description 323 chars - Cowork description 267 chars - Brand kit description 269 chars
Fix: propose tighter titles + descriptions per post, get Sush's approval (he'll have voice opinions), then update frontmatter. This is editorial work — not a one-shot regex pass.
Suggested target shapes: - Title: ~60–65 chars before the
| A Guide to Cloud & AIsite suffix gets appended (so the rendered title stays under 70) - Description: ~140–155 chars🟡 P3 — Microsoft Clarity tracking blocked by CSP (decision needed)¶
Console error on every page: "Connecting to 'https://y.clarity.ms/collect' violates CSP directive". This is intentional — the site CSP doesn't allow Clarity. Two options:
- Drop Clarity entirely — it's not working anyway. Cloudflare Insights is loaded and works. Remove the Clarity script from
baseof.html.- Keep Clarity — add
https://*.clarity.msto the CSPconnect-srcdirective in_headers(or wherever CSP lives). Re-test.Ask Sush which option he wants. If he doesn't care, drop it (less is more, the principle for the whole site).
Rules to follow this session:
- Read the full deployment playbook first:
C:\ssClawy\learning-docs\docs\reference\deployment-playbook.md- Use parallel-safe git:
C:\ssClawy\learning-docs\docs\reference\parallel-git-rules.md- Hugo build via wrapper:
C:\ssClawy\learning-docs\docs\reference\hugo-build.md- Practice exam SLA: never touch
PracticeQuiz.tsx, question JSON, practice page templates, or_headersenv vars without verifying ALL practice endpoints still work.- The notebook system is stable. Don't refactor it. Don't restyle Mermaid.
- Pre-push gate: run the 19-step checklist. Especially #5 (cache_version bump), #6+#7 (Playwright before AND after deploy), #18 (guided-quiz QA test if practice files were touched — they should NOT be).
Start by reading the three context files, then reproduce the JSON-LD bug locally, then propose a fix path. Don't deploy without my approval on the schema-validator results.
Why this prompt is the way it is¶
Self-contained: the next session shouldn't need to chase context across multiple files. Everything that's known about each issue is in the prompt itself, with file pointers for the deep playbook.
Risk-graded: P1 (JSON-LD) is the only one that warrants a deploy. P2 (content lengths) is editorial and Sush will want to drive. P3 (Clarity) is a yes/no decision he needs to make first.
Verification gates: explicit Schema Validator + Rich Results Test for the JSON-LD fix because Hugo's jsonify is the kind of thing that's easy to half-fix — looks right in one place, breaks in another.
Honour the firewalls: the prompt explicitly tells the next session what NOT to touch. Mermaid. Practice. Notebook layout. The original 8 May session built carefully around these — the follow-up should respect the same lines.