Skip to content

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):

  1. 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.
  2. C:\Users\ssutheesh\.copilot\session-journal.md — the top entry titled "Blog Notebook rollout · 17 posts live · 2 deploys".
  3. 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 jsonify is 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 | jsonify does.

Fix path:

  1. Reproduce locally on the dev server. Run pwsh C:\ssClawy\aguidetocloud-revamp\scripts\hugo-safe.ps1 server --port 1314 and curl one blog post's JSON-LD to confirm the nested quotes.
  2. Test the fix on a single post first. Don't change all schemas at once.
  3. 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 }}
  4. Verify with two tools BEFORE pushing:
  5. Apply to all 8 schema blocks in partials/seo-jsonld.html once the fix pattern is confirmed.
  6. Spot-check 5 posts manually by fetching live HTML and parsing JSON-LD with ConvertFrom-Json. The parsed values should NOT have wrapping quotes.
  7. Bump cache_version and 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 & AI site 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.ms to the CSP connect-src directive 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:

  1. Read the full deployment playbook first: C:\ssClawy\learning-docs\docs\reference\deployment-playbook.md
  2. Use parallel-safe git: C:\ssClawy\learning-docs\docs\reference\parallel-git-rules.md
  3. Hugo build via wrapper: C:\ssClawy\learning-docs\docs\reference\hugo-build.md
  4. Practice exam SLA: never touch PracticeQuiz.tsx, question JSON, practice page templates, or _headers env vars without verifying ALL practice endpoints still work.
  5. The notebook system is stable. Don't refactor it. Don't restyle Mermaid.
  6. 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.