Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
330 changes: 291 additions & 39 deletions assets/css/custom.scss

Large diffs are not rendered by default.

16 changes: 9 additions & 7 deletions content/_index.md
Original file line number Diff line number Diff line change
@@ -1,13 +1,15 @@
---
title: Home
banner_title: "<span class='text-gradient'>Infrastructure as Code</span>"
banner_tagline: "Get control of your"
banner_text: "Home-grown IaC workflow weighing down your time to delivery? We’re here to help make <strong class='text-gradient'>Terraform, OpenTofu, or Pulumi</strong> efficient and scalable, no matter where you provision your infrastructure."
banner_title: "<span class='text-gradient'>MASTER YOUR Infrastructure as Code</span>"
banner_tagline: "Deploy faster. Break less. Scale smarter."
banner_text: "We deliver workflows that transform your tangled infrastructure as code into a platform your team can manage, scale, and evolve."
banner_image: /img/banner_home.jpg
description: "Home-grown IaC workflow weighing down your time to delivery? We’re here to help make Terraform, OpenTofu, or Pulumi efficient and scalable, no matter where you provision your infrastructure. "
banner_btn_label: See the services →
banner_btn_link: /services
sections: home
description: "We deliver workflows that transform your tangled infrastructure as code into a platform your team can manage, scale, and evolve."
banner_btn_label: Book A Call
banner_btn_link: /#
banner_link_label: Audit Your IaC →
banner_link: /#
Comment on lines +8 to +11
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Find all uses of /# in content files
echo "=== Uses of /# in content files ==="
rg -n --glob 'content/**/*.md' ':\s*/?#\s*$|:\s*"/?#"\s*$' -A 1 -B 1

echo ""
echo "=== id definitions in content files ==="
rg -n --glob 'content/**/*.md' '^id:\s*' | head -20

echo ""
echo "=== Check what sections exist ==="
fd --glob 'content/sections/*.md' | head -20

Repository: masterpointio/masterpoint.io

Length of output: 1539


Wire banner CTAs to actual page sections instead of placeholder /# anchors.

The banner_btn_link and banner_link in lines 9 and 11 both point to /#, which only jumps to the page top. This appears to be a development placeholder—no other files in the codebase use /# as a link target. Several home sections with real anchors exist (e.g., #join-clients, #turn-chaos-operations, #make-infrastructure) that should be linked instead: use /#join-clients for the "Book A Call" button or another relevant home section anchor, or link to a real route like /contact/.

🤖 Prompt for AI Agents
In content/_index.md around lines 8 to 11 the banner_btn_link and banner_link
are set to the placeholder "/#", which only jumps to the top of the page;
replace these placeholder anchors with actual targets — for example change
banner_btn_link to "/#join-clients" (or another appropriate section anchor like
"/#turn-chaos-operations" or "/#make-infrastructure") or point to a real route
such as "/contact/"; update both banner_btn_link and banner_link to the chosen
real anchor/route so the CTAs navigate to the intended section or page.

sections: "home"
sitemap:
priority: 1
id: home
Expand Down
41 changes: 41 additions & 0 deletions content/sections/home-efficient-platforms.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
---
title: Our Work Lead to Efficient Platforms
weight: 4
#position: justify-content-start reverse flex
#size: col-12 col-md-6
#section_image: /img/diverse_group_of_doctors.jpg
#image: /img/bg_featured_video.jpg
section_categories:
- Home
id: efficient-platforms
---

### Our Work Lead to <br> <span class="text-gradient">Efficient Platforms</span> {.groupTitle .text-center .text-rhythm}

<div class="row platform-row">

<div class="col col-12 col-md-4">
<div class="platform-tile platform-tile-1">
<div class="platformIcon"><img src="img/noun-developer-7187679.svg" alt="Developer" /></div>
<div class="platformCount">2000+</div>
<div class="platformCTA">Engineering Hours Saved Annually</div>
</div>
</div>

<div class="col col-12 col-md-4">
<div class="platform-tile platform-tile-2">
<div class="platformIcon"><img src="img/noun-cycle-7222105.svg" alt="Cycle" /></div>
<div class="platformCount">10x</div>
<div class="platformCTA">Faster Plan & Apply Times</div>
</div>
</div>

<div class="col col-12 col-md-4">
<div class="platform-tile platform-tile-2">
<div class="platformIcon"><img src="img/noun-reduction-7894266.svg" alt="Reduction" /></div>
<div class="platformCount">10x</div>
<div class="platformCTA">Reduction in Infrastructure Automation Costs</div>
</div>
</div>

</div>
6 changes: 3 additions & 3 deletions content/sections/home-join-clients.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
---
title: Join Clients Like
weight: 3
weight: 1
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Show Home section weights/ids to confirm ordering intent
rg -n --glob 'content/sections/home-*.md' '^(title:|weight:|id:|section_categories:)' | head -100

Repository: masterpointio/masterpoint.io

Length of output: 1887


Fix duplicate weight value to avoid unpredictable section ordering.

weight: 1 is already used by home-specialized-services.md. Setting home-join-clients.md to the same weight creates ambiguous ordering. Choose a unique weight value (e.g., weight: 6 to place it after home-our-word.md at the end).

Also applies to: 10-10, 14-14

🤖 Prompt for AI Agents
In content/sections/home-join-clients.md around line 3, the frontmatter uses a
duplicate weight value (weight: 1) which conflicts with
home-specialized-services.md and causes unpredictable ordering; change this
weight to a unique value (for example weight: 6 to place it after
home-our-word.md) and update any other duplicate occurrences referenced at lines
10 and 14 in this file to unique, non-conflicting weights so section ordering is
deterministic.

section_categories:
- Home
id: join-clients
---

<div class="row justify-content-center text-center">
<div class="col col-12 col-md-10 col-lg-7">
<div class="col col-12 col-md-10 col-lg-7 col-xl-6">

### Join Clients Like: {.sectionLabel .text-center .text-rhythm}

<p class="font20">We’ve architected and implemented platforms for clients ranging from startups to Fortune 20 enterprises.</p>
<p class="font20 text-pine">Our team has architected and implemented cloud platforms for a diverse set of clients ranging from startups to Fortune 20 enterprises.</p>

</div></div>

Expand Down
17 changes: 17 additions & 0 deletions content/sections/home-make-infrastructure.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
---
title: Make Infrastructure
weight: 2
position: justify-content-end
size: col-12 col-md-6
#section_image: /img/bg_make_infrastructure.png
image: /img/bg_make_infrastructure.png
section_categories:
- Home
id: make-infrastructure
---

### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1}

Code is easy to come by. But cheap code doesn’t make for an efficient platform. Workflows and automations do. Our IaC workshops and Workflow Library provide the expertise, training, and foundations needed to build the workflows that lead to efficient operations.

<a href="/#" class="button btn-outline-gradient btn-big">See Our Results →</a>
5 changes: 3 additions & 2 deletions content/sections/home-our-word.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,15 @@
---
title: Don't take our word for it...
weight: 4
weight: 5
#position: align-items-center justify-content-end
size: col-12 col-md-7
#section_image: /img/doctor_and_patient.jpg
image: /img/bg_our_word.jpg
section_categories:
- Home
- Home
id: our-word
---

### Our clients love our hands-on approach {.text-gradient .quoteLabel}

{{<testimonials>}}
4 changes: 3 additions & 1 deletion content/sections/home-specialized-services.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,14 +5,16 @@ weight: 1
#size: col-12 col-md-6
#section_image: /img/diverse_group_of_doctors.jpg
#image: /img/bg_featured_video.jpg
draft: true
section_categories:
- Home
- Home
id: specialized-services
---

### Get support at every level {.groupTitle .text-center .text-rhythm}

{{<services>}}

<div class="text-center mt-5">
<a href="/services/" class="button btn-outline-gradient text-pine btn-big">See the Services →</a>
</div>
50 changes: 50 additions & 0 deletions content/sections/home-turn-chaos.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
---
title: Turn Chaos into Reliable Operations
weight: 3
#position: justify-content-start reverse flex
#size: col-12 col-md-6
#section_image: /img/diverse_group_of_doctors.jpg
#image: /img/bg_featured_video.jpg
section_categories:
- Home
id: turn-chaos-operations
---

<div class="row justify-content-center text-center">
<div class="col col-12 col-md-10 col-lg-8 col-xl-7">

### Turn Chaos into<br> <span class="text-gradient">Reliable Operations</span> {.groupTitle .text-center .text-rhythm}

<p class="font20 text-pine">Untangle your messy infrastructure as code into a clean, scalable platform your team can own. Here’s how we do it.</p>

</div>
</div>

{{<services>}}
Copy link
Contributor

@coderabbitai coderabbitai bot Oct 29, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify {{<services>}} shortcode renders steps correctly.

The shortcode invocation relies on the updated layouts/shortcodes/services.html template, which now filters by "steps" type instead of "services". Ensure that step content files exist at content/steps/ with appropriate frontmatter (Type: steps).


🏁 Script executed:

#!/bin/bash
# Verify that step content files exist and have correct Type
fd 'steps' content/ --type f --extension md | xargs grep -l "^Type.*steps" 2>/dev/null || echo "No steps found"

Length of output: 14


I'll investigate further to understand the issue completely.

</script>

🏁 Script executed:

#!/bin/bash
# Check 1: Does content/steps directory exist?
echo "=== Checking content/steps directory ==="
if [ -d "content/steps" ]; then
  echo "Directory exists"
  echo "Files in content/steps:"
  ls -la content/steps/ || echo "Cannot list"
else
  echo "Directory does not exist"
fi

# Check 2: Search for ANY files with Type: steps anywhere in content
echo ""
echo "=== Searching for Type: steps in all content ==="
rg "^Type.*steps" content/ --type md -n || echo "No matches found"

# Check 3: Inspect the services.html shortcode
echo ""
echo "=== Inspecting layouts/shortcodes/services.html ==="
if [ -f "layouts/shortcodes/services.html" ]; then
  cat layouts/shortcodes/services.html
else
  echo "services.html not found"
fi

Length of output: 1191


</script>

🏁 Script executed:

#!/bin/bash
# Inspect frontmatter of each step file
echo "=== Frontmatter in content/steps/audit.md ==="
head -20 content/steps/audit.md

echo ""
echo "=== Frontmatter in content/steps/innovate.md ==="
head -20 content/steps/innovate.md

echo ""
echo "=== Frontmatter in content/steps/operate.md ==="
head -20 content/steps/operate.md

Length of output: 762


Add Type: steps frontmatter field to step content files.

Step content files exist at content/steps/ but are missing the Type: steps frontmatter required by the updated shortcode filter. Add Type: steps to the frontmatter of:

  • content/steps/audit.md
  • content/steps/innovate.md
  • content/steps/operate.md

Without this field, the shortcode will render empty because Hugo's where filter will not match any pages.

🤖 Prompt for AI Agents
In content/sections/home-turn-chaos.md around line 23, the shortcode
{{<services>}} expects step pages with a frontmatter field "Type: steps" but the
step files under content/steps/ are missing that field; open and update the
frontmatter of content/steps/audit.md, content/steps/innovate.md, and
content/steps/operate.md to include a top-level line "Type: steps" (matching
case) so Hugo's where filter will find them and the shortcode will render
correctly.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks like a valid issue

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@gberenice, thanks for confirming! This issue will prevent the {{<services>}} shortcode from rendering any content on the homepage until the Type: steps frontmatter is added to those three step files.

Would you like me to create a GitHub issue to track adding the missing Type: steps frontmatter field to the step content files?


<div class="text-center">
<a href="/services/" class="button btn-outline-gradient text-pine btn-big">Explore Our Process →</a>
</div>

<div class="audit-home-tile">
<div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div>
<div class="row">
<div class="col col-12 col-md-6">

### Audit Your Infrastructure<br> as Code Now {.groupTitle}

Uncover the inefficiencies in your infrastructure with our IaC Audit.
{.font22 .mb-3}

</div>
<div class="col col-12 col-md-6">
<ol class="numbered-list pt-2 mt-1 mb-0">
<li>We’ll talk goals</li>
<li>Interview your team</li>
<li>Assess your setup</li>
<li>and provide practical recommendations that will set your team up for success.</li>
</ol>
</div>
</div>
<div class="audit-home-btn"><a href="https://calendly.com/matt-at-masterpoint" target="_blank" class="button btn-gradient">Get Started - Schedule Now </a></div>
</div>
3 changes: 2 additions & 1 deletion content/sections/home-what-is-masterpoint.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,8 +5,9 @@ weight: 2
size: col-12 col-md-6
section_image: /img/cloud_architecture.png
#image: /img/bg_featured_video.jpg
draft: true
section_categories:
- Home
- Home
id: were-masterpoint
---

Expand Down
7 changes: 7 additions & 0 deletions content/steps/audit.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Audit
description: >-
Uncover the inefficiencies in your platform and get practical recommendations to fix them.
weight: 1
icon: /img/services/icon_assessment.svg
---
7 changes: 7 additions & 0 deletions content/steps/innovate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
---
title: Innovate
description: >-
Our team tackles the heavy lifting, turning recommendations into real platform improvements.
weight: 2
icon: /img/services/icon_masterpoint.svg
---
8 changes: 8 additions & 0 deletions content/steps/operate.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
---
title: Platform Engineering as a Service
title: Operate
description: >-
Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
---
6 changes: 4 additions & 2 deletions layouts/_default/_markup/render-heading.html
Original file line number Diff line number Diff line change
Expand Up @@ -20,12 +20,14 @@
{{- end -}}

{{- if $enableAnchorLinks -}}
<h{{ $level }} id="{{ $anchor }}" class="heading-with-anchor">
<h{{ $level }} id="{{ $anchor }}" {{- with .Attributes.class }} class="{{ . }} heading-with-anchor" {{- end }}>
<a href="#{{ $anchor }}" class="heading-anchor-link" aria-label="Link to {{ $text }}">
<span class="heading-text">{{ $text | safeHTML }}</span>
<span class="heading-anchor-symbol">#</span>
</a>
</h{{ $level }}>
Comment on lines +23 to 28
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Ensure heading-with-anchor is applied even when no .Attributes.class is provided (currently it disappears).

Right now heading-with-anchor is only emitted inside with .Attributes.class, so headings with anchors but no class won’t get the styling hook.

-<h{{ $level }} id="{{ $anchor }}" {{- with .Attributes.class }} class="{{ . }} heading-with-anchor" {{- end }}>
+<h{{ $level }} id="{{ $anchor }}"
+  class="heading-with-anchor{{ with .Attributes.class }} {{ . }}{{ end }}">
   <a href="#{{ $anchor }}" class="heading-anchor-link" aria-label="Link to {{ $text }}">
     <span class="heading-text">{{ $text | safeHTML }}</span>
     <span class="heading-anchor-symbol">#</span>
   </a>
 </h{{ $level }}>
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
<h{{ $level }} id="{{ $anchor }}" {{- with .Attributes.class }} class="{{ . }} heading-with-anchor" {{- end }}>
<a href="#{{ $anchor }}" class="heading-anchor-link" aria-label="Link to {{ $text }}">
<span class="heading-text">{{ $text | safeHTML }}</span>
<span class="heading-anchor-symbol">#</span>
</a>
</h{{ $level }}>
<h{{ $level }} id="{{ $anchor }}"
class="heading-with-anchor{{ with .Attributes.class }} {{ . }}{{ end }}">
<a href="#{{ $anchor }}" class="heading-anchor-link" aria-label="Link to {{ $text }}">
<span class="heading-text">{{ $text | safeHTML }}</span>
<span class="heading-anchor-symbol">#</span>
</a>
</h{{ $level }}>
🤖 Prompt for AI Agents
In layouts/_default/_markup/render-heading.html around lines 23 to 28, the class
"heading-with-anchor" is only emitted inside the "with .Attributes.class" block
so headings without any .Attributes.class lose that styling hook; change the
markup to always output a class attribute that appends "heading-with-anchor" to
any existing classes (or sets it alone when none exist) — i.e., compute the
class string conditionally and emit a single class="{{ computed }}" attribute so
headings always get the "heading-with-anchor" class while preserving any
provided classes.

{{- else -}}
<h{{ $level }} id="{{ $anchor }}">{{ $text | safeHTML }}</h{{ $level }}>
<h{{ $level }} id="{{ $anchor }}" {{- with .Attributes.class }} class="{{ . }}" {{- end }}>
{{ $text | safeHTML }}
</h{{ $level }}>
{{- end -}}
26 changes: 13 additions & 13 deletions layouts/index.html
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,7 @@
<div class="row">
<div class="col col-12 col-md-7">
<div class="bannerTxtBx aos-item" data-aos="fade-right">
{{if .Params.banner_tagline}}
<div class="bannerTagline">
{{.Params.banner_tagline | safeHTML}}
</div>
{{end}}


<h3>
{{if .Params.banner_title}}
Expand All @@ -22,17 +18,23 @@ <h3>
{{ .Title | safeHTML }}
{{end}}
</h3>
{{if .Params.banner_tagline}}
<div class="bannerTagline">
{{.Params.banner_tagline | safeHTML}}
</div>
{{end}}
{{if .Params.banner_text}}
<div class="bannerTxt">{{ .Params.banner_text|safeHTML}}</div>
{{end}}
<div class="rowLinks bannerBtn">
{{ if .Params.banner_btn_label}}
<div class="bannerBtn"><a class="button btn-outline-gradient"
href="{{.Params.banner_btn_link}}">{{.Params.banner_btn_label | safeHTML}}</a></div>
<a class="button btn-gradient" href="{{.Params.banner_btn_link}}">{{.Params.banner_btn_label | safeHTML}}</a>
{{end}}
{{ if .Params.banner_link_label}}
<div class="bannerLink">or <a href="{{.Params.banner_link}}">{{.Params.banner_link_label | safeHTML}}</a></div>
<a class="button btn-outline-gradient" href="{{.Params.banner_link}}">{{.Params.banner_link_label | safeHTML}}</a>
{{end}}
</div>
</div>
</div>
</div>
{{ partial "cloud.html" .}}
Expand Down Expand Up @@ -79,17 +81,15 @@ <h3>

{{ partial "latest-news.html" . }}

</main>

</main>

{{ partial "schedule-assessment.html" . }}

{{ partial "signup-section.html" .}}

{{ partial "footer.html" . }}

{{ partial "scripts.html" . }}
<!-- On Load Lightbox -->

<script>
if (window.netlifyIdentity) {
Expand All @@ -104,4 +104,4 @@ <h3>
</script>

</body>
</html>
</html>
31 changes: 15 additions & 16 deletions layouts/shortcodes/services.html
Original file line number Diff line number Diff line change
@@ -1,21 +1,20 @@
<div class="services-row row justify-content-center">
{{ range where (.Site.RegularPages.ByWeight) "Type" "services" }}
<div class="col col-12 col-md-6">
<div class="services-row row">
{{ range where (.Site.RegularPages.ByWeight) "Type" "steps" }}
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify step content exists with correct Type.

The filter changed from "services" to "steps", which means this shortcode now requires step content files (e.g., content/steps/audit.md, content/steps/innovate.md, content/steps/operate.md) with Type: steps in their frontmatter.


🏁 Script executed:

#!/bin/bash
# Verify step content exists with Type field
echo "=== Checking for step content files ==="
fd --type f --extension md content/steps 2>/dev/null | head -20 || echo "No steps directory found"

# Check that steps have Type: steps
echo -e "\n=== Checking Type field in steps ==="
fd --type f --extension md content/steps 2>/dev/null | xargs grep -l "^Type:" | head -5 || echo "No Type field found in steps"

Length of output: 77



🏁 Script executed:

#!/bin/bash
# Check directory structure
echo "=== Directory listing: content/ ==="
ls -la content/ 2>/dev/null | head -20 || echo "content/ not found"

# Check if steps directory exists specifically
echo -e "\n=== Checking for steps directory ==="
[ -d content/steps ] && echo "content/steps exists" || echo "content/steps does NOT exist"

# Look for services content as reference
echo -e "\n=== Checking for services directory and content ==="
ls -la content/services 2>/dev/null | head -20 || echo "content/services not found"

# Search for any Type: field usage (broader search)
echo -e "\n=== Searching for Type: field in content ==="
rg "^Type:" content/ 2>/dev/null | head -10 || echo "No Type: field found"

# Check for recent changes or PR files
echo -e "\n=== Checking for any markdown files in content/ ==="
find content -name "*.md" -type f 2>/dev/null | head -20 || echo "No markdown files found"

Length of output: 3035



🏁 Script executed:

#!/bin/bash
# Check actual files in steps directory
echo "=== Files in content/steps ==="
ls -la content/steps/ 2>/dev/null || echo "Could not list steps directory"

# Show content of step files if they exist
echo -e "\n=== Examining step files (first 50 lines each) ==="
find content/steps -type f 2>/dev/null | while read file; do
  echo "--- $file ---"
  head -50 "$file"
done

# Also check services frontmatter for comparison
echo -e "\n=== Examining services files for reference structure ==="
find content/services -type f -name "*.md" 2>/dev/null | head -1 | xargs head -50

Length of output: 1949


Fix malformed YAML frontmatter in operate.md—duplicate title fields will cause parsing errors.

Step content does exist with the required structure (content/steps/audit.md, innovate.md, operate.md). However, content/steps/operate.md has a critical YAML syntax error: two consecutive title: fields in the frontmatter. YAML will only preserve the second one, but this malformed structure may cause unexpected rendering or validation failures. Remove the duplicate and keep only one title field.

---
title: Operate
description: >-
   Learn proven workflows and skills, empowering your engineers to confidently scale and own your infra going forward.
weight: 3
icon: /img/services/icon_engineering.svg
---
🤖 Prompt for AI Agents
content/steps/operate.md frontmatter (approx. lines 1-8): the YAML frontmatter
contains two consecutive "title:" fields which causes parsing errors; open
content/steps/operate.md, remove the duplicate title line so only a single
title: Operate remains, ensure the remaining frontmatter includes description,
weight, and icon exactly as shown, and save the file so the frontmatter is valid
YAML.

<div class="col col-12 col-md-4">
<div class="serviceBx">
{{if .Params.icon}}
<div class="serviceIcon bg-gradient">
<img src="{{.Params.icon}}" />
</div>
{{end}}
{{if .Params.badge}}
<div class="serviceBadge">
<img src="{{.Params.badge}}" />
</div>
{{end}}
<h3 class="serviceTitle">
{{.Title}}
<div class="serviceIcon bg-gradient">
{{if .Params.icon}}
<img src="{{.Params.icon}}" />
{{end}}
</div>
<h3 class="serviceTitle homeServiceTitle">
{{if .Params.home_title}}
{{.Params.home_title}}
{{else}}
{{.Title}}
{{end}}
</h3>
<div class="serviceDesc">{{.Description}}</div>
<div class="serviceDesc">{{.Params.home_description}}</div>
Comment on lines +10 to +17
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

Verify home_title and home_description parameters exist in all step content.

The template now expects .Params.home_title and .Params.home_description fields. Ensure these are present in all step content files; otherwise, the fallback to .Title and missing .home_description will cause rendering issues.


🏁 Script executed:

#!/bin/bash
# Verify required parameters in step content
echo "=== Checking step content for home_title and home_description ==="
fd --type f --extension md content/steps 2>/dev/null | while read file; do
  echo "--- $file ---"
  grep -E "^(home_title|home_description|title|Type):" "$file" | head -5
done

Length of output: 65


I need to explore the repository structure to understand where step content is located and how parameters are defined.


---

🏁 Script executed:

```shell
#!/bin/bash
# Explore repository structure
echo "=== Repository structure ==="
find . -type d -name content -o -name steps 2>/dev/null | head -20

echo ""
echo "=== Top-level directories ==="
ls -la | grep -E '^d' | head -20

echo ""
echo "=== Content directory structure ==="
find content -type f -name "*.md" 2>/dev/null | head -20

echo ""
echo "=== Check for services.html file ==="
find . -name "services.html" -type f 2>/dev/null

Length of output: 1909



---

🏁 Script executed:

```shell
#!/bin/bash
# Check what's actually in the steps directories
echo "=== Files in content/steps ==="
ls -la content/steps/ 2>/dev/null || echo "Directory empty or doesn't exist"

echo ""
echo "=== Files in layouts/steps ==="
ls -la layouts/steps/ 2>/dev/null || echo "Directory empty or doesn't exist"

echo ""
echo "=== Content of services.html ==="
cat layouts/shortcodes/services.html

echo ""
echo "=== Check git diff to see what changed ==="
git show HEAD:layouts/shortcodes/services.html 2>/dev/null | head -30

Length of output: 2059



---

🏁 Script executed:

```shell
#!/bin/bash
# Read all step files to check parameters
echo "=== audit.md ==="
cat content/steps/audit.md

echo ""
echo "=== innovate.md ==="
cat content/steps/innovate.md

echo ""
echo "=== operate.md ==="
cat content/steps/operate.md

Length of output: 675


Add home_title and home_description parameters to all step content files.

The template references .Params.home_title and .Params.home_description, but none of the step files (audit.md, innovate.md, operate.md) define these parameters. While home_title falls back to .Title, home_description has no fallback and will render as empty. Add both parameters to all step files:

home_title: <optional; defaults to title if omitted>
home_description: <required; no fallback exists>
🤖 Prompt for AI Agents
In layouts/shortcodes/services.html around lines 10-17 the template uses
.Params.home_title and .Params.home_description but the step content files
(audit.md, innovate.md, operate.md) do not define them; add YAML front-matter
entries to each of those files: include home_description with a non-empty string
value, and optionally include home_title (or omit it to let the template fall
back to .Title); ensure the new keys are added at the top-level of each file's
front matter with proper YAML formatting and no empty values.

</div>
</div>
{{end}}
Expand Down
Empty file added layouts/steps/list.html
Empty file.
Empty file added layouts/steps/single.html
Empty file.
Binary file added static/img/bg_audit_home.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file added static/img/bg_make_infrastructure.png
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions static/img/noun-cycle-7222105.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions static/img/noun-developer-7187679.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
1 change: 1 addition & 0 deletions static/img/noun-reduction-7894266.svg
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.