diff --git a/.Jules/apex.md b/.Jules/apex.md index ef768cbf..8a706a66 100644 --- a/.Jules/apex.md +++ b/.Jules/apex.md @@ -22,3 +22,5 @@ Prefer visitor-facing craft on live surfaces (Home, Work, Biography, Contact, an ## 2026-05-26 - Product Manifesto | Signal: Product Leadership "Guiding Principles" trend | Lean Implementation: Isolated experimental route, uses Hero/Icon primitives, ~45 lines delta. ## 2026-05-27 - Strategic Reading List | Signal: Portfolio "Bookshelf" trend | Lean Implementation: Isolated experimental route, static data array, uses Hero/Pill/Icon primitives, ~48 lines delta. + +## 2026-08-30 - Product Playbook | Signal: Product Leadership "Decision Frameworks" trend | Lean Implementation: Isolated experimental route /experimental/playbook, flagged enable_product_playbook, < 50 lines total delta. diff --git a/src/content.config.ts b/src/content.config.ts index 4925dcfc..4e6036cd 100644 --- a/src/content.config.ts +++ b/src/content.config.ts @@ -27,6 +27,7 @@ export const collections = { enable_logo_wobble_v1: z.boolean().default(false), enable_cta_tactile_v1: z.boolean().default(false), enable_theme_toggle_tactile_v1: z.boolean().default(false), + enable_product_playbook: z.boolean().default(false), }), }), }; diff --git a/src/content/flags/config.json b/src/content/flags/config.json index e0450e9f..959583eb 100644 --- a/src/content/flags/config.json +++ b/src/content/flags/config.json @@ -7,5 +7,6 @@ "enable_reading_list": true, "enable_logo_wobble_v1": true, "enable_cta_tactile_v1": true, - "enable_theme_toggle_tactile_v1": true + "enable_theme_toggle_tactile_v1": true, + "enable_product_playbook": true } diff --git a/src/pages/experimental/manifesto.astro b/src/pages/experimental/manifesto.astro index 43270720..46b3e3df 100644 --- a/src/pages/experimental/manifesto.astro +++ b/src/pages/experimental/manifesto.astro @@ -4,7 +4,7 @@ import BaseLayout from '../../layouts/BaseLayout.astro'; import Hero from '../../components/Hero.astro'; import Icon from '../../components/Icon.astro'; -const flags = await getEntry('flags', 'index'); +const flags = await getEntry('flags', 'config'); if (!flags?.data.enable_product_manifesto) return Astro.redirect('/404/'); const principles = [ diff --git a/src/pages/experimental/playbook.astro b/src/pages/experimental/playbook.astro new file mode 100644 index 00000000..c5bd4a82 --- /dev/null +++ b/src/pages/experimental/playbook.astro @@ -0,0 +1,67 @@ +--- +import { getEntry } from 'astro:content'; +import BaseLayout from '../../layouts/BaseLayout.astro'; +import Hero from '../../components/Hero.astro'; +import CallToAction from '../../components/CallToAction.astro'; + +const flags = await getEntry('flags', 'config'); +if (!flags?.data.enable_product_playbook) return Astro.redirect('/404/'); + +const pillars = [ + { t: 'Continuous Discovery', d: 'Validate user problems with data & feedback before building.' }, + { t: 'Systems Over Silos', d: 'Architect reusable primitives & APIs to scale dev velocity.' }, + { t: 'Measurable Value', d: 'Deliver quantifiable business ROI & high-impact outcomes.' }, +]; +--- + + + + + + { + pillars.map((p) => ( + + {p.t} + {p.d} + + )) + } + + Get in touch + + + +
{p.d}