Conversation
✅ Deploy Preview for masterpoint ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
WalkthroughAdds new homepage content and IaC-focused pages, multiple Hugo shortcodes and templates, substantial CSS additions/variants, and updates to banner/head rendering and services shortcode data source (now iterates "steps" instead of "services"). Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Possibly related PRs
Suggested reviewers
🚥 Pre-merge checks | ✅ 2 | ❌ 1❌ Failed checks (1 inconclusive)
✅ Passed checks (2 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
assets/css/custom.scss (1)
723-756: Fix invalid CSS values / media query syntax (can cause styles to be skipped).-@media (min-width: 1200px) and(max-width: 1300px) { +@media (min-width: 1200px) and (max-width: 1300px) { -@media (min-width: 1200px) and(max-width:1330px) { +@media (min-width: 1200px) and (max-width: 1330px) { - border-bottom: solid 1px rgba(255, 0255, 255, 0.1); + border-bottom: solid 1px rgba(255, 255, 255, 0.1);Also applies to: 933-933
🧹 Nitpick comments (1)
content/sections/home-turn-chaos.md (1)
49-49: Consider parameterizing the Calendly URL.The hardcoded Calendly URL on line 49 makes future updates difficult. Consider moving this to front matter or site config instead.
📜 Review details
Configuration used: CodeRabbit UI
Review profile: CHILL
Plan: Pro
⛔ Files ignored due to path filters (5)
static/img/bg_audit_home.pngis excluded by!**/*.pngstatic/img/bg_make_infrastructure.pngis excluded by!**/*.pngstatic/img/noun-cycle-7222105.svgis excluded by!**/*.svgstatic/img/noun-developer-7187679.svgis excluded by!**/*.svgstatic/img/noun-reduction-7894266.svgis excluded by!**/*.svg
📒 Files selected for processing (14)
assets/css/custom.scss(14 hunks)content/_index.md(1 hunks)content/sections/home-efficient-platforms.md(1 hunks)content/sections/home-join-clients.md(1 hunks)content/sections/home-make-infrastructure.md(1 hunks)content/sections/home-our-word.md(1 hunks)content/sections/home-specialized-services.md(1 hunks)content/sections/home-turn-chaos.md(1 hunks)content/sections/home-what-is-masterpoint.md(1 hunks)content/steps/audit.md(1 hunks)content/steps/innovate.md(1 hunks)content/steps/operate.md(1 hunks)layouts/index.html(4 hunks)layouts/shortcodes/services.html(1 hunks)
🧰 Additional context used
📓 Path-based instructions (1)
content/**/*.md
📄 CodeRabbit inference engine (CLAUDE.md)
content/**/*.md: Place all site content in Markdown files under /content/
Use absolute URLs in content (paths should start with "/", e.g., /blog/ not blog/)
Reference images in content using the /img/ path (which maps to /static/img/)
Use front matter draft: true to hide in-progress content from production
Use provided Hugo shortcodes (button, buttonout, form, testimonials, faqs, team, services, process, supports, client-logos) in content instead of duplicating HTML
Files:
content/sections/home-what-is-masterpoint.mdcontent/steps/innovate.mdcontent/steps/audit.mdcontent/sections/home-make-infrastructure.mdcontent/sections/home-efficient-platforms.mdcontent/sections/home-our-word.mdcontent/steps/operate.mdcontent/sections/home-join-clients.mdcontent/sections/home-turn-chaos.mdcontent/_index.mdcontent/sections/home-specialized-services.md
🧠 Learnings (3)
📚 Learning: 2025-08-11T18:01:10.378Z
Learnt from: westonplatter
Repo: masterpointio/masterpoint.io PR: 73
File: content/blog/ai-meets-tf-prompt-strategies-for-test-generation.md:2-3
Timestamp: 2025-08-11T18:01:10.378Z
Learning: For the masterpointio/masterpoint.io repository, blog post visibility is controlled by the publish date rather than the draft flag in the front matter. The draft flag can be set to false even for unpublished posts, as the publish date determines when content becomes visible.
Applied to files:
content/sections/home-what-is-masterpoint.md
📚 Learning: 2025-09-19T19:21:07.260Z
Learnt from: CR
Repo: masterpointio/masterpoint.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-19T19:21:07.260Z
Learning: Applies to content/**/*.md : Use front matter draft: true to hide in-progress content from production
Applied to files:
content/sections/home-what-is-masterpoint.mdcontent/sections/home-specialized-services.md
📚 Learning: 2025-09-19T19:21:07.260Z
Learnt from: CR
Repo: masterpointio/masterpoint.io PR: 0
File: CLAUDE.md:0-0
Timestamp: 2025-09-19T19:21:07.260Z
Learning: Applies to assets/css/style.scss : Place custom styles in assets/css/style.scss (requires Hugo Extended for SCSS compilation)
Applied to files:
assets/css/custom.scss
🪛 GitHub Check: Trunk Check
content/steps/innovate.md
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
content/steps/audit.md
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
content/sections/home-make-infrastructure.md
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
content/sections/home-efficient-platforms.md
[notice] 21-21: markdownlint(MD045)
[new] Images should have alternate text (alt text)
[notice] 30-30: markdownlint(MD045)
[new] Images should have alternate text (alt text)
[notice] 39-39: markdownlint(MD045)
[new] Images should have alternate text (alt text)
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
content/steps/operate.md
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
content/sections/home-turn-chaos.md
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
🪛 markdownlint-cli2 (0.18.1)
content/sections/home-efficient-platforms.md
21-21: Images should have alternate text (alt text)
(MD045, no-alt-text)
30-30: Images should have alternate text (alt text)
(MD045, no-alt-text)
39-39: Images should have alternate text (alt text)
(MD045, no-alt-text)
⏰ Context from checks skipped due to timeout of 90000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (3)
- GitHub Check: Redirect rules - masterpoint
- GitHub Check: Header rules - masterpoint
- GitHub Check: Pages changed - masterpoint
🔇 Additional comments (11)
content/sections/home-specialized-services.md (1)
1-12: Good use ofdraft: trueto keep this section out of production until ready.content/sections/home-what-is-masterpoint.md (1)
1-12:draft: trueis appropriate here to prevent unintended publication of the reworked homepage section.content/sections/home-our-word.md (1)
1-11: Weight-only change looks fine (homepage ordering).content/sections/home-join-clients.md (1)
1-17: Content/layout tweak looks good; text reads stronger and the responsive width change is reasonable.assets/css/custom.scss (1)
115-161: New components/section hooks are cohesive and appear consistent with the homepage rework direction.(Separately, trunk/prettier is failing—worth running the formatter after the correctness fixes.)
Also applies to: 274-282, 1059-1078, 1593-1726, 1759-1782
content/steps/innovate.md (1)
1-7: Step metadata looks good; please re-run formatter to satisfy the prettier/trunk check.content/steps/audit.md (1)
1-7: Step metadata looks good; please re-run formatter to satisfy the prettier/trunk check.content/sections/home-efficient-platforms.md (1)
38-38: Verify third platform tile CSS class.The third tile reuses
platform-tile-2(same as the second tile on line 29). Confirm if this is intentional or if it should use a distinct class likeplatform-tile-3.content/_index.md (1)
8-11: Verify CTA link destinations.Lines 9 and 11 both use
/#as the link destination, which won't anchor to a meaningful location. Confirm whether these should link to specific sections (e.g.,/#turn-chaos-operations) or pages (e.g.,/services/).layouts/index.html (2)
21-25: Verify tagline repositioning doesn't break styling.The banner tagline was moved from before the H3 to after it (lines 21-25). Confirm that CSS selectors and styling still apply correctly with this new DOM order.
31-31: CSS classesbtn-gradientandbtn-outline-gradientare properly defined.Both classes are defined in assets/css/custom.scss (btn-gradient at line 274, btn-outline-gradient at lines 285, 294, and 340).
|
|
||
| <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"/></div> |
There was a problem hiding this comment.
Fix image paths to use absolute URLs and add alt text.
Per coding guidelines, image references must use absolute paths starting with /, not relative paths. Additionally, all images need alt text for accessibility.
-<div class="platformIcon"><img src="img/noun-developer-7187679.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-developer-7187679.svg" alt="Developer icon"/></div>-<div class="platformIcon"><img src="img/noun-cycle-7222105.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-cycle-7222105.svg" alt="Cycle icon"/></div>-<div class="platformIcon"><img src="img/noun-reduction-7894266.svg"/></div>
+<div class="platformIcon"><img src="/img/noun-reduction-7894266.svg" alt="Reduction icon"/></div>Also applies to: 30-30, 39-39
🧰 Tools
🪛 GitHub Check: Trunk Check
[notice] 21-21: markdownlint(MD045)
[new] Images should have alternate text (alt text)
🪛 markdownlint-cli2 (0.18.1)
21-21: Images should have alternate text (alt text)
(MD045, no-alt-text)
🤖 Prompt for AI Agents
In content/sections/home-efficient-platforms.md around lines 21, 30, and 39, the
<img> tags use relative src paths and lack alt attributes; update each image tag
so src uses an absolute path beginning with "/" (e.g., "/img/...svg") and add a
meaningful alt="" attribute for accessibility (e.g., alt="developer icon") to
each image reference.
| --- | ||
| 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> No newline at end of file |
There was a problem hiding this comment.
Replace placeholder CTA target (href="/#"). This will feel broken/unfinished in production even if the section is later un-drafted.
Suggested change (pick the real destination):
-<a href="/#" class="button btn-outline-gradient btn-big">See Our Results →</a>
+<a href="/case-studies/" class="button btn-outline-gradient btn-big">See Our Results →</a>📝 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.
| --- | |
| 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> | |
| --- | |
| 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="/case-studies/" class="button btn-outline-gradient btn-big">See Our Results →</a> |
🧰 Tools
🪛 GitHub Check: Trunk Check
[failure] 1-1: prettier
Incorrect formatting, autoformat by running 'trunk fmt'
🤖 Prompt for AI Agents
In content/sections/home-make-infrastructure.md lines 1-17 the CTA anchor uses a
placeholder href="/#", which appears broken/unfinished; replace that href with
the real destination route (for example /results, /case-studies, /workshops, or
the canonical page that shows your outcomes), ensure the chosen route exists in
the site, update the link to use that URL (relative or absolute as appropriate)
and confirm the anchor text/aria-label still accurately describes the target.
| </div> | ||
|
|
||
| <div class="audit-home-tile"> | ||
| <div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div> |
There was a problem hiding this comment.
Fix image path to use absolute URL.
Per coding guidelines, image references must use absolute paths starting with /.
-<div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div>
+<div class="bg-image"><img src="/img/bg_audit_home.png" alt="Masterpoint Thread Background"/></div>(Note: Also fixed typo "Backround" → "Background" in alt text.)
📝 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.
| <div class="bg-image"><img src="img/bg_audit_home.png" alt="Masterpoint Thread Backround"/></div> | |
| <div class="bg-image"><img src="/img/bg_audit_home.png" alt="Masterpoint Thread Background"/></div> |
🤖 Prompt for AI Agents
In content/sections/home-turn-chaos.md around line 30, the image src uses a
relative path and the alt text has a typo; update the src to an absolute path by
prefixing it with a leading slash (e.g., /img/bg_audit_home.png) and correct the
alt text from "Masterpoint Thread Backround" to "Masterpoint Thread Background".
| title: Platform Engineering as a Service | ||
| title: Operate |
There was a problem hiding this comment.
Fix duplicate YAML front matter key.
Line 3 uses title: Operate but this conflicts with line 2's title. Based on the enriched summary, line 3 should be sub_title: Operate.
---
title: Platform Engineering as a Service
-title: Operate
+sub_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
---📝 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.
| title: Platform Engineering as a Service | |
| title: Operate | |
| --- | |
| title: Platform Engineering as a Service | |
| sub_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
In content/steps/operate.md around lines 2 to 3, the YAML front matter contains
a duplicate key "title": change the second occurrence (line 3) from "title:
Operate" to "sub_title: Operate" so the front matter keys are unique and match
the intended enriched summary field.
| {{ 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" }} |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Verify the concerns raised in the review comment
# 1. Check all step files for home_description parameter
echo "=== Checking step files for home_description parameter ==="
if fd -e md 'content/steps' 2>/dev/null | head -20; then
fd -e md 'content/steps' 2>/dev/null | xargs grep -l "home_description" 2>/dev/null | wc -l
fd -e md 'content/steps' 2>/dev/null | wc -l
else
echo "No content/steps directory found or no .md files in it"
fi
# 2. Find all {{<services>}} shortcode usages in the repository
echo -e "\n=== Finding all {{<services>}} shortcode usages ==="
rg '{{<\s*services\s*>}}' --type md 2>/dev/null | head -50
# 3. Check if CSS classes are defined
echo -e "\n=== Checking for CSS classes bg-gradient and homeServiceTitle ==="
rg 'bg-gradient|homeServiceTitle' 2>/dev/null | head -30
# 4. Get the services.html shortcode content to understand line 17 requirement
echo -e "\n=== Content of services.html shortcode ==="
if [ -f "layouts/shortcodes/services.html" ]; then
cat -n layouts/shortcodes/services.html
fiRepository: masterpointio/masterpoint.io
Length of output: 2069
🏁 Script executed:
#!/bin/bash
# Deeper investigation of the shortcode change
# 1. Search for services shortcode usage across all files (not just markdown)
echo "=== Searching for services shortcode usage across all file types ==="
rg '{{<\s*services\s*>}}' 2>/dev/null || echo "No shortcode usages found"
# 2. Check content directory structure
echo -e "\n=== Content directory structure ==="
if [ -d "content" ]; then
find content -type d | head -30
echo -e "\n=== Content types available (directories in content/) ==="
ls -la content/ 2>/dev/null
fi
# 3. Check for "services" type content files
echo -e "\n=== Looking for files with Type 'services' ==="
rg 'type:\s*services|Type.*services' --type md --type yaml 2>/dev/null | head -20 || echo "No 'services' type content found"
# 4. Check for "steps" type content files
echo -e "\n=== Looking for files with Type 'steps' ==="
rg 'type:\s*steps|Type.*steps' --type md --type yaml 2>/dev/null | head -20 || echo "No 'steps' type content found"
# 5. Check where the shortcode is actually used
echo -e "\n=== Searching for services shortcode in all templates and includes ==="
rg 'services' layouts/ 2>/dev/null | grep -i 'shortcode\|include\|partial' | head -20Repository: masterpointio/masterpoint.io
Length of output: 2202
🏁 Script executed:
#!/bin/bash
# Examine content files in services and steps directories
echo "=== Files in content/services/ ==="
ls -la content/services/
echo -e "\n=== Content of services files ==="
cat -n content/services/*.md
echo -e "\n=== Files in content/steps/ ==="
ls -la content/steps/
echo -e "\n=== Content of steps files ==="
cat -n content/steps/*.mdRepository: masterpointio/masterpoint.io
Length of output: 6547
Breaking change confirmed: Missing required home_description parameter in step files.
The shortcode was changed from iterating over Type "services" to Type "steps". This is a breaking change, but more critically: step files lack the home_description parameter that the shortcode requires on line 17. The steps (audit.md, innovate.md, operate.md) only have description, not home_description, so line 17 will render empty values if the shortcode is used.
Additionally, while the CSS classes bg-gradient and homeServiceTitle are properly defined in assets/css/custom.scss, the shortcode currently has no active usage in templates.
🤖 Prompt for AI Agents
In layouts/shortcodes/services.html around line 2, the range was switched to
Type "steps" but the shortcode expects a frontmatter param home_description
(used at line 17) which the step pages don't provide; either revert the range to
Type "services" if you intended to render service pages, or make the shortcode
robust by falling back to .Params.description when .Params.home_description is
missing and update the three step files (audit.md, innovate.md, operate.md) to
include home_description if you want bespoke text; also verify any templates
that should include this shortcode actually call it so the CSS classes are used.
|
Closing as #85 supersedes. |
|
Reopening as I need to test this again... got something wrong. |
✅ Deploy Preview for masterpoint ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
There was a problem hiding this comment.
Actionable comments posted: 2
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (1)
assets/css/custom.scss (1)
1350-1357:⚠️ Potential issue | 🟡 MinorDon’t keep the fifth service connector shifted on mobile.
Below
768px, every.serviceIcongets the shared mobile connector, but this block still leaves the fifth one translated left. That makes only that card render differently on small screens.📱 Suggested fix
&:nth-child(5) { .serviceIcon { &:before { left: 0; transform: translateX(-65%); `@media` (max-width: 767px) { - transform: translateX(-50%); + left: auto; + transform: none; } } } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@assets/css/custom.scss` around lines 1350 - 1357, The nth-child(5) special-case keeps the fifth .serviceIcon shifted on small screens; inside the &:nth-child(5) { .serviceIcon { &:before { ... } } } block add or ensure a media query matching the global mobile rule (e.g., `@media` (max-width: 767px)) that overrides the desktop transform: translateX(-65%) with transform: translateX(-50%) (or remove the desktop-only translateX override for that child) so the fifth connector uses the same mobile positioning as the other .serviceIcon elements.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@assets/css/custom.scss`:
- Around line 278-286: The .btn-gradient variant sets a dark text color but is
overridden by the shared .button hover/focus rule; update the .btn-gradient
block to explicitly reset its hover and focus state by adding a selector for
&:hover and &:focus that sets color back to the dark value (use the same hex,
e.g. `#033`) so hover/focus do not flip to white—place this inside the
.btn-gradient rules (refer to .btn-gradient and the existing .button
:hover/:focus styles) and, if necessary to win specificity, match the selector
pattern used by the shared button rule rather than relying on !important.
- Around line 1649-1666: The decorative connector on .platform-row created by
its &:before pseudo-element should be hidden at small sizes where tiles stack
vertically; update the CSS for .platform-row &:before to disable or remove that
pseudo-element under the small-screen breakpoint used by the layout (the md
breakpoint / widths below ~768px) — e.g., add a media query targeting screens
below the md breakpoint and set the pseudo-element to not display (or set
content: none / height: 0) so the horizontal line does not run through stacked
.col-12 tiles.
---
Outside diff comments:
In `@assets/css/custom.scss`:
- Around line 1350-1357: The nth-child(5) special-case keeps the fifth
.serviceIcon shifted on small screens; inside the &:nth-child(5) { .serviceIcon
{ &:before { ... } } } block add or ensure a media query matching the global
mobile rule (e.g., `@media` (max-width: 767px)) that overrides the desktop
transform: translateX(-65%) with transform: translateX(-50%) (or remove the
desktop-only translateX override for that child) so the fifth connector uses the
same mobile positioning as the other .serviceIcon elements.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 2a8d2e89-7fc5-4d8d-8fa9-d46dd7a59915
📒 Files selected for processing (1)
assets/css/custom.scss
| &.btn-gradient { | ||
| background: linear-gradient( | ||
| 92deg, | ||
| #ede497 -0.66%, | ||
| #2ad9c2 26%, | ||
| #d891ce 59.55% | ||
| ); | ||
| color: #033; | ||
| } |
There was a problem hiding this comment.
Keep .btn-gradient text dark on hover and focus.
This variant sets a dark foreground, but it still inherits the shared .button hover/focus color change to white. The homepage CTAs using btn-gradient will flip to low-contrast text when hovered or keyboard-focused.
🎯 Suggested fix
&.btn-gradient {
background: linear-gradient(
92deg,
`#ede497` -0.66%,
`#2ad9c2` 26%,
`#d891ce` 59.55%
);
color: `#033`;
+ &:hover,
+ &:focus {
+ color: `#033`;
+ }
}📝 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.
| &.btn-gradient { | |
| background: linear-gradient( | |
| 92deg, | |
| #ede497 -0.66%, | |
| #2ad9c2 26%, | |
| #d891ce 59.55% | |
| ); | |
| color: #033; | |
| } | |
| &.btn-gradient { | |
| background: linear-gradient( | |
| 92deg, | |
| `#ede497` -0.66%, | |
| `#2ad9c2` 26%, | |
| `#d891ce` 59.55% | |
| ); | |
| color: `#033`; | |
| &:hover, | |
| &:focus { | |
| color: `#033`; | |
| } | |
| } |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@assets/css/custom.scss` around lines 278 - 286, The .btn-gradient variant
sets a dark text color but is overridden by the shared .button hover/focus rule;
update the .btn-gradient block to explicitly reset its hover and focus state by
adding a selector for &:hover and &:focus that sets color back to the dark value
(use the same hex, e.g. `#033`) so hover/focus do not flip to white—place this
inside the .btn-gradient rules (refer to .btn-gradient and the existing .button
:hover/:focus styles) and, if necessary to win specificity, match the selector
pattern used by the shared button rule rather than relying on !important.
assets/css/custom.scss
Outdated
| .platform-row { | ||
| position: relative; | ||
| &:before { | ||
| content: ""; | ||
| position: absolute; | ||
| width: 100vw; | ||
| height: 2px; | ||
| background: linear-gradient( | ||
| 99.59deg, | ||
| #ede497 2.59%, | ||
| #2ad9c2 41.12%, | ||
| #d891ce 89.63% | ||
| ); | ||
| top: 50%; | ||
| z-index: -1; | ||
| left: 50%; | ||
| transform: translateX(-50%); | ||
| } |
There was a problem hiding this comment.
Hide the platform connector once the cards stack.
content/sections/home-efficient-platforms.md renders these as col-12 col-md-4, so below 768px the tiles become a vertical stack. The horizontal :before line here will run through the middle of the stacked cards instead of connecting them.
📏 Suggested fix
.platform-row {
position: relative;
&:before {
content: "";
position: absolute;
width: 100vw;
height: 2px;
background: linear-gradient(
99.59deg,
`#ede497` 2.59%,
`#2ad9c2` 41.12%,
`#d891ce` 89.63%
);
top: 50%;
z-index: -1;
left: 50%;
transform: translateX(-50%);
}
+ `@media` (max-width: 767px) {
+ &:before {
+ display: none;
+ }
+ }
.col {
padding-top: 12px;
padding-bottom: 12px;
}
}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@assets/css/custom.scss` around lines 1649 - 1666, The decorative connector on
.platform-row created by its &:before pseudo-element should be hidden at small
sizes where tiles stack vertically; update the CSS for .platform-row &:before to
disable or remove that pseudo-element under the small-screen breakpoint used by
the layout (the md breakpoint / widths below ~768px) — e.g., add a media query
targeting screens below the md breakpoint and set the pseudo-element to not
display (or set content: none / height: 0) so the horizontal line does not run
through stacked .col-12 tiles.
There was a problem hiding this comment.
Actionable comments posted: 17
♻️ Duplicate comments (2)
assets/css/custom.scss (2)
320-328:⚠️ Potential issue | 🟠 MajorKeep
.btn-gradienttext dark on hover/focus.The shared
.button:hover, .button:focusrule still flips this variant to white, which hurts contrast/readability.🎯 Proposed fix
&.btn-gradient { background: linear-gradient( 92deg, `#ede497` -0.66%, `#2ad9c2` 26%, `#d891ce` 59.55% ); color: `#033`; + &:hover, + &:focus { + color: `#033`; + } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@assets/css/custom.scss` around lines 320 - 328, The .btn-gradient variant is being overridden by the global .button:hover, .button:focus rule; add a more specific rule for .btn-gradient hover/focus (for example .btn-gradient:hover, .btn-gradient:focus) that explicitly sets color: `#033` (or the existing dark value) and place it after the generic hover/focus rule so the text stays dark on hover/focus; reference .btn-gradient and the global .button:hover, .button:focus selectors when making the change.
1920-1942:⚠️ Potential issue | 🟡 MinorHide the
.platform-rowconnector when columns stack on mobile.Without a mobile override, the horizontal connector runs through vertically stacked tiles.
📱 Proposed fix
.platform-row { position: relative; &:before { @@ transform: translateX(-50%); } + `@media` (max-width: 767px) { + &:before { + display: none; + } + } .col { padding-top: 12px; padding-bottom: 12px; } }🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@assets/css/custom.scss` around lines 1920 - 1942, The horizontal connector defined by .platform-row &:before should be disabled on narrow viewports so it doesn't run through stacked tiles; add a mobile media query targeting the .platform-row &:before pseudo-element (or .platform-row:before) and set it to not render (e.g., display: none or height: 0 / width: 0 / opacity: 0) when columns stack, ensuring .col padding remains unchanged; update the rule near the existing .platform-row, &:before, and .col selectors so the connector is visible on desktop but hidden on mobile.
🧹 Nitpick comments (3)
layouts/partials/scripts.html (1)
19-21: Minification step conflicts with documented guideline.The resource pipeline now applies
resources.Minifytoplugins.js. However, based on learnings, the guideline states: "Keep JavaScript plugins as pre-minified static files in assets/js/plugins.js; do not add a JS build step."If this is an intentional change to the build process, consider updating the project documentation to reflect the new approach. Otherwise, if
plugins.jsis already pre-minified, the extra minification step is redundant.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@layouts/partials/scripts.html` around lines 19 - 21, The template now applies resources.Minify to the plugins bundle (resources.Get "js/plugins.js" piped into resources.Minify producing $secureJS), which conflicts with the guideline to keep plugins as pre-minified static files; either remove the minification step (stop piping $js into resources.Minify and just use $js.Permalink) so pre-minified assets are served as intended, or if you intend to change the build process, update project docs to state that resources.Minify is used for "js/plugins.js" and remove the guideline that plugins must be pre-minified.layouts/shortcodes/accordian.html (1)
1-12: Clarify the intended use case for the newaccordianshortcode relative to the existingfaqsshortcode.The existing
faqsshortcode fetches FAQ content from separate pages in the site, while this newaccordianshortcode expects FAQ data embedded in page front matter. If both data models are needed, document which approach to use when. If only one is intended, consolidate to avoid maintaining duplicate accordion/FAQ functionality.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@layouts/shortcodes/accordian.html` around lines 1 - 12, The new accordian shortcode (layouts/shortcodes/accordian.html) uses .Page.Params.faqs to render inline front‑matter FAQ data, but your project already has an existing faqs shortcode that sources FAQs from separate pages; clarify and act on a single approach: either document that accordian is for embedded front‑matter FAQs and faqs remains for site‑wide/linked FAQ pages, or consolidate by refactoring one into the other (e.g., update accordian to accept both .Page.Params.faqs and the faqs shortcode’s page-sourced collection, or remove duplicate markup and export a single reusable partial used by both). Make the change by updating the accordian shortcode and README/docs to state the intended data model (or by refactoring the rendering logic into a shared component used by both accordian and faqs) and ensure unique identifiers like .Page.Params.faqs, faq-{{ $index }}, and the faqs shortcode name are consistent after consolidation.content/sections/iac-sound-familiar.md (1)
10-10: Normalize the section id spelling (familier→familiar).This typo will lock in inconsistent naming across content and styles; better to correct now before wider reuse.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/iac-sound-familiar.md` at line 10, The section id "iac-sound-familier" is misspelled; update the section's front-matter/metadata id value from "iac-sound-familier" to the corrected "iac-sound-familiar" so content and styles use the consistent identifier (look for the id field containing iac-sound-familier and replace it).
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@assets/css/custom.scss`:
- Around line 186-196: Add a generic fallback to the Font Awesome declaration by
changing the font-family that contains "Font Awesome 6 Free" to include a
generic like sans-serif (e.g., "Font Awesome 6 Free", sans-serif), remove the
unsupported unprefixed text-fill-color property instances (the lines with
text-fill-color: transparent; that appear alongside -webkit-text-fill-color and
at the other occurrence referenced) so only the vendor-prefixed
-webkit-text-fill-color remains if needed, and fix the unquoted url() at the
other reported spot by wrapping the URL in quotes (e.g., url("...")).
In `@config.yaml`:
- Line 42: The change sets autoHeadingID to false which stops Hugo from
auto-generating heading IDs and will break existing in-page anchor links; revert
this by setting autoHeadingID: true in the config (or, if you intentionally want
it off, update all affected headings in your content to include explicit IDs
like {`#intro`} and {`#final-thoughts`} across the blog posts), referencing the
autoHeadingID setting to locate the config and the headings in the content files
to apply the explicit {#...} attributes.
In `@content/sections/iac-cta.md`:
- Line 20: The CTA anchor element with class "button btn-gradient" and label
"Schedule a Discovery Call" currently uses a placeholder href="/#"; update that
anchor's href to the real destination (for example "/contact/" or your external
scheduling URL like a Calendly link) so the button navigates to the actual
scheduling/contact page; locate the anchor element in iac-cta.md (the <a
class="button btn-gradient"> element) and replace the placeholder href value
with the correct URL.
In `@content/sections/iac-pricing.md`:
- Line 25: Remove the literal escaped asterisks from the markdown line so the
content doesn't render `**` characters; replace the text `\*\*No hidden costs.
No surprises. No scope creep.\*\*` with just `No hidden costs. No surprises. No
scope creep.` and rely on the existing <b><em> wrapper in the same line to
provide bold/italic styling.
In `@content/sections/iac-questions.md`:
- Around line 12-26: The faqs array contains five entries under the faqs key
with distinct title strings but all share the same placeholder content; replace
the repeated "The audit spans 1 week..." answer for each title with specific,
relevant text: keep the current answer for "How long does the audit take?", add
an implementation-support answer for "What if we need help implementing the
recommendations?" (describe support options such as remediation assistance,
consulting hours or follow-up engagement), add team-size guidance for "What size
teams is this for?" (e.g., typical engagements for small/medium/large teams and
recommended contacts), list supported IaC tools for "What IaC tools do you
support?" (e.g., Terraform, CloudFormation, ARM/Bicep, Pulumi, Kubernetes
manifests), and provide a timeline/flexibility answer for "What if we're not
ready to act on recommendations immediately?" (e.g., offering phased
remediation, prioritization, and re-assessment options); update the content
values under the existing faqs entries (use the title strings to locate each
entry) with these tailored answers.
In `@content/sections/iac-sound-familiar.md`:
- Around line 1-42: This file fails Prettier formatting; run the formatter
(trunk fmt or your project's Prettier command) on the markdown containing the
front-matter and content (look for the front-matter block with title: "Sound
familiar?" and id: iac-sound-familier) and commit the updated file so the
Prettier/Trunk check passes; after formatting, verify no extraneous whitespace
or malformed front-matter keys remain.
- Around line 31-39: Replace the duplicated HTML anchor (<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>) with the shared Hugo
"button" shortcode and set the CTA URL to the real target (not "/#"); remove the
surrounding duplicated button HTML block and invoke the "button" shortcode
passing the label "Schedule a Discovery Call" and the correct href so the
content follows the guideline to use provided shortcodes instead of raw HTML.
- Around line 1-24: This section is missing the draft flag in its front matter;
add draft: true to the YAML block (near title: "Sound familiar?" and id:
iac-sound-familier) so the page remains hidden until production-ready, ensuring
the placeholder CTA and in-progress content aren't published.
In `@content/sections/iac-the-results.md`:
- Around line 32-33: Replace the hand-written anchor tag (<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>) with the Hugo "button"
shortcode and point it to the real discovery-call route (e.g., /discovery-call);
use the shortcode's text parameter to keep the CTA label "Schedule a Discovery
Call" so the section uses the standardized button component instead of
duplicated HTML.
- Around line 25-76: The block starting with the raw div container
"iac-results-tile" is preventing markdown headings and attribute lists (the "###
The Results" and "#### ..." lines and their {.serviceTitle .text-white}/.font20
annotations) from being parsed; move the layout markup into a Hugo
partial/shortcode (e.g., a new partial that renders the surrounding <div
class="iac-results-tile"> and grid columns) and keep the inner content as plain
markdown headings and list items, replacing the raw anchor `<a class="button
btn-gradient" href="/#">Schedule a Discovery Call</a>` with the provided Hugo
button shortcode so the markdown headings, attribute-list classes and styling
hooks (The Results, the four service titles) are preserved and rendered
correctly.
In `@content/sections/iac-what-we-do.md`:
- Around line 25-33: The raw <div class="row justify-content-center
text-center"> wrapper around the section prevents the nested markdown heading
"### What WE DO {.sectionTitle .big .text-center .text-pine}" from being parsed;
remove the surrounding HTML from this markdown file and place that row/column
wrapper into a Hugo shortcode or template (or an existing provided shortcode),
leaving only the plain markdown heading and paragraph text in the file; ensure
the shortcode applies the same classes so the visual layout is preserved and
reference the heading text "What WE DO" and its attributes when implementing the
wrapper in the shortcode.
In `@content/sections/iac-what-you-get.md`:
- Around line 32-34: Replace the raw anchor/button HTML (the div with class
"rowLinks" containing <a href="/#">Schedule a Discovery Call</a>) with the
shared Hugo "button" shortcode and set its href to a real scheduling target
(e.g., your contact page or calendar/booking URL); use the "button" shortcode
name so styling and behavior are consistent across the site and remove the dead
href="/#". Ensure the inner text remains "Schedule a Discovery Call" and
preserve any needed wrapper (rowLinks) for layout.
- Around line 1-26: Add a top-level front matter key draft: true to the YAML
block for the "What You Get" section so the page is hidden from production while
content is finalized; update the existing frontmatter (title: What You Get / id:
iac-what-you-get) to include draft: true as a boolean value in the same YAML
block so the site generator will treat this page as a draft.
In `@content/services/iac-audit.md`:
- Around line 8-10: The banner's CTA target is a placeholder: replace the value
of banner_btn_link (currently "/#") with the real booking/contact URL so the
primary CTA (banner_btn_label) points to the actual scheduling or contact
destination; update the string for banner_btn_link to the production booking
link or route used by your site.
In `@layouts/services/single.html`:
- Line 55: The template uses an invalid call to the Hugo index function: replace
the incorrect "{{ $mgatag := index site.Taxonomies.section_categories }}" by
directly assigning the taxonomy map to $mgatag (or, if you intended to select a
specific key, call index with the map and that key) so that $mgatag references
site.Taxonomies.section_categories correctly; update the assignment to use
either direct access (site.Taxonomies.section_categories) or a proper index call
with both map and key in the declaration for the variable $mgatag.
In `@layouts/shortcodes/accordian.html`:
- Around line 1-12: Rename the shortcode file from "accordian.html" to the
correctly spelled "accordion.html" and update all shortcode invocations from {{<
accordian >}} to {{< accordion >}} (e.g., update
content/sections/iac-questions.md and any other files referencing the old name);
ensure the template contents (the block using .Page.Params.faqs and ids like
faq-{{ $index }}) remain unchanged so the behavior is identical after renaming.
In `@layouts/shortcodes/platform-tiles.html`:
- Line 5: The div currently always emits id="" which creates invalid/duplicate
DOM ids; update the shortcode template so the id attribute on the element with
class "row platform-row" is only rendered when the caller provides a non-empty
$id (e.g. wrap the id attribute in a conditional like if/with for $id), so when
$id is empty the id attribute is omitted entirely.
---
Duplicate comments:
In `@assets/css/custom.scss`:
- Around line 320-328: The .btn-gradient variant is being overridden by the
global .button:hover, .button:focus rule; add a more specific rule for
.btn-gradient hover/focus (for example .btn-gradient:hover, .btn-gradient:focus)
that explicitly sets color: `#033` (or the existing dark value) and place it after
the generic hover/focus rule so the text stays dark on hover/focus; reference
.btn-gradient and the global .button:hover, .button:focus selectors when making
the change.
- Around line 1920-1942: The horizontal connector defined by .platform-row
&:before should be disabled on narrow viewports so it doesn't run through
stacked tiles; add a mobile media query targeting the .platform-row &:before
pseudo-element (or .platform-row:before) and set it to not render (e.g.,
display: none or height: 0 / width: 0 / opacity: 0) when columns stack, ensuring
.col padding remains unchanged; update the rule near the existing .platform-row,
&:before, and .col selectors so the connector is visible on desktop but hidden
on mobile.
---
Nitpick comments:
In `@content/sections/iac-sound-familiar.md`:
- Line 10: The section id "iac-sound-familier" is misspelled; update the
section's front-matter/metadata id value from "iac-sound-familier" to the
corrected "iac-sound-familiar" so content and styles use the consistent
identifier (look for the id field containing iac-sound-familier and replace it).
In `@layouts/partials/scripts.html`:
- Around line 19-21: The template now applies resources.Minify to the plugins
bundle (resources.Get "js/plugins.js" piped into resources.Minify producing
$secureJS), which conflicts with the guideline to keep plugins as pre-minified
static files; either remove the minification step (stop piping $js into
resources.Minify and just use $js.Permalink) so pre-minified assets are served
as intended, or if you intend to change the build process, update project docs
to state that resources.Minify is used for "js/plugins.js" and remove the
guideline that plugins must be pre-minified.
In `@layouts/shortcodes/accordian.html`:
- Around line 1-12: The new accordian shortcode
(layouts/shortcodes/accordian.html) uses .Page.Params.faqs to render inline
front‑matter FAQ data, but your project already has an existing faqs shortcode
that sources FAQs from separate pages; clarify and act on a single approach:
either document that accordian is for embedded front‑matter FAQs and faqs
remains for site‑wide/linked FAQ pages, or consolidate by refactoring one into
the other (e.g., update accordian to accept both .Page.Params.faqs and the faqs
shortcode’s page-sourced collection, or remove duplicate markup and export a
single reusable partial used by both). Make the change by updating the accordian
shortcode and README/docs to state the intended data model (or by refactoring
the rendering logic into a shared component used by both accordian and faqs) and
ensure unique identifiers like .Page.Params.faqs, faq-{{ $index }}, and the faqs
shortcode name are consistent after consolidation.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: 42b5e7da-4e1b-4d42-bdbd-10ed8f807c33
⛔ Files ignored due to path filters (10)
static/img/banner_iac_bg.pngis excluded by!**/*.pngstatic/img/bg_iac_cta.jpgis excluded by!**/*.jpgstatic/img/icon_access.pngis excluded by!**/*.pngstatic/img/icon_finding_reports.pngis excluded by!**/*.pngstatic/img/icon_guidance.pngis excluded by!**/*.pngstatic/img/icon_infra_review.pngis excluded by!**/*.pngstatic/img/icon_tailored_recommendations.pngis excluded by!**/*.pngstatic/img/icon_team_interviews.pngis excluded by!**/*.pngstatic/img/icon_workflow_assessement.pngis excluded by!**/*.pngstatic/js/bootstrap.bundle.min.jsis excluded by!**/*.min.js
📒 Files selected for processing (26)
assets/css/custom.scssassets/css/variables.scssconfig.yamlcontent/_index.mdcontent/sections/home-make-infrastructure.mdcontent/sections/iac-cta.mdcontent/sections/iac-pricing.mdcontent/sections/iac-questions.mdcontent/sections/iac-sound-familiar.mdcontent/sections/iac-the-results.mdcontent/sections/iac-what-we-do.mdcontent/sections/iac-what-you-get.mdcontent/services/iac-audit.mdcontent/services/infra-innovation.mdcontent/services/managed-service-partners.mdcontent/services/spacelift.mdcontent/services/team-training.mdlayouts/_default/_markup/render-heading.htmllayouts/_default/_markup/~render-heading.htmllayouts/partials/head.htmllayouts/partials/scripts.htmllayouts/services/list.htmllayouts/services/single.htmllayouts/shortcodes/accordian.htmllayouts/shortcodes/cards.htmllayouts/shortcodes/platform-tiles.html
💤 Files with no reviewable changes (4)
- content/services/infra-innovation.md
- content/services/managed-service-partners.md
- content/services/team-training.md
- content/services/spacelift.md
🚧 Files skipped from review as they are similar to previous changes (1)
- content/_index.md
| font-family: "Font Awesome 6 Free"; | ||
| background: linear-gradient( | ||
| 92.08deg, | ||
| #ede497 -0.66%, | ||
| #2ad9c2 26%, | ||
| #d891ce 59.55% | ||
| ); | ||
| -webkit-background-clip: text; | ||
| -webkit-text-fill-color: transparent; | ||
| background-clip: text; | ||
| text-fill-color: transparent; |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Read-only verification of the exact linted patterns
rg -n 'font-family:\s*"Font Awesome 6 Free"|text-fill-color:|background-image:\s*url\(/img/banner_iac_bg\.png\)' assets/css/custom.scssRepository: masterpointio/masterpoint.io
Length of output: 343
🏁 Script executed:
sed -n '655,661p' assets/css/custom.scss | cat -nRepository: masterpointio/masterpoint.io
Length of output: 258
🏁 Script executed:
sed -n '650,665p' assets/css/custom.scss | cat -nRepository: masterpointio/masterpoint.io
Length of output: 502
Fix Stylelint blockers in the new styles.
Three lint errors can block CI:
- Line 186: missing generic font fallback in
font-familydeclaration - Lines 196 and 659: unsupported unprefixed
text-fill-colorproperty (also at line 659) - Line 3589: unquoted
url()value
Remove the text-fill-color lines entirely and add a generic fallback to the Font Awesome declaration.
Proposed fixes
- font-family: "Font Awesome 6 Free";
+ font-family: "Font Awesome 6 Free", sans-serif;
@@
- text-fill-color: transparent;
@@
- background-image: url(/img/banner_iac_bg.png);
+ background-image: url("/img/banner_iac_bg.png");Apply the text-fill-color removal at lines 196 and 659.
🧰 Tools
🪛 Stylelint (17.4.0)
[error] 186-186: Unexpected missing generic font family (font-family-no-missing-generic-family-keyword)
(font-family-no-missing-generic-family-keyword)
[error] 196-196: Unexpected unknown property "text-fill-color" (property-no-unknown)
(property-no-unknown)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@assets/css/custom.scss` around lines 186 - 196, Add a generic fallback to the
Font Awesome declaration by changing the font-family that contains "Font Awesome
6 Free" to include a generic like sans-serif (e.g., "Font Awesome 6 Free",
sans-serif), remove the unsupported unprefixed text-fill-color property
instances (the lines with text-fill-color: transparent; that appear alongside
-webkit-text-fill-color and at the other occurrence referenced) so only the
vendor-prefixed -webkit-text-fill-color remains if needed, and fix the unquoted
url() at the other reported spot by wrapping the URL in quotes (e.g.,
url("...")).
| block: true | ||
| title: true | ||
| autoHeadingID: true | ||
| autoHeadingID: false |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find markdown files with internal anchor links that depend on auto-generated heading IDs
rg -n '\]\(#[a-z0-9-]+\)' --type md content/Repository: masterpointio/masterpoint.io
Length of output: 25347
🏁 Script executed:
#!/bin/bash
# First, check the config.yaml file around line 42
echo "=== config.yaml content ==="
head -60 config.yaml | tail -25
echo ""
echo "=== Checking for explicit heading IDs in markdown files ==="
# Check if any of the markdown files have explicit {`#id`} syntax
rg '\{\s*#[a-z0-9-]+\s*\}' --type md content/blog/ | head -20Repository: masterpointio/masterpoint.io
Length of output: 653
🏁 Script executed:
#!/bin/bash
# Sample a blog file to see heading structure
echo "=== Sample from 2023-08-10 blog file ==="
sed -n '1,100p' content/blog/2023-08-10-understanding-the-terraform-check-block-feature.md | head -80Repository: masterpointio/masterpoint.io
Length of output: 7906
Disabling autoHeadingID will break existing in-page anchor links.
Setting autoHeadingID: false prevents Hugo from auto-generating heading IDs. Existing blog posts contain table-of-contents links like [Intro](#intro) and [Final thoughts](#final-thoughts) that rely on auto-generated IDs. With this setting and no explicit heading ID attributes, these links will be broken.
Either:
- Keep
autoHeadingID: true, or - Add explicit
{#intro},{#final-thoughts}attributes to all affected headings across the 20+ blog files.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@config.yaml` at line 42, The change sets autoHeadingID to false which stops
Hugo from auto-generating heading IDs and will break existing in-page anchor
links; revert this by setting autoHeadingID: true in the config (or, if you
intentionally want it off, update all affected headings in your content to
include explicit IDs like {`#intro`} and {`#final-thoughts`} across the blog posts),
referencing the autoHeadingID setting to locate the config and the headings in
the content files to apply the explicit {#...} attributes.
| {.font22 .text-center} | ||
|
|
||
| <div class="rowLinks text-center pt-3"> | ||
| <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> |
There was a problem hiding this comment.
Replace placeholder CTA link with actual destination.
The "Schedule a Discovery Call" button uses href="/#" which is a placeholder. This should link to the actual scheduling or contact page (e.g., /contact/ or a Calendly link).
Suggested fix
- <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a>
+ <a class="button btn-gradient" href="/contact/">Schedule a Discovery Call</a>📝 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.
| <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> | |
| <a class="button btn-gradient" href="/contact/">Schedule a Discovery Call</a> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-cta.md` at line 20, The CTA anchor element with class
"button btn-gradient" and label "Schedule a Discovery Call" currently uses a
placeholder href="/#"; update that anchor's href to the real destination (for
example "/contact/" or your external scheduling URL like a Calendly link) so the
button navigates to the actual scheduling/contact page; locate the anchor
element in iac-cta.md (the <a class="button btn-gradient"> element) and replace
the placeholder href value with the correct URL.
| <b class="text-pine">IaC Confidence - <em class="text-pink">Priceless</em></b> | ||
| </div> | ||
|
|
||
| <b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b> |
There was a problem hiding this comment.
Escaped asterisks will render as literal ** characters.
The line \*\*No hidden costs. No surprises. No scope creep.\*\* uses escaped asterisks, which will display as literal ** text rather than bold formatting. Since the content is already wrapped in <b><em>, remove the escaped asterisks entirely.
Suggested fix
-<b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b>
+<b><em>No hidden costs. No surprises. No scope creep.</em></b>📝 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.
| <b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b> | |
| <b><em>No hidden costs. No surprises. No scope creep.</em></b> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-pricing.md` at line 25, Remove the literal escaped
asterisks from the markdown line so the content doesn't render `**` characters;
replace the text `\*\*No hidden costs. No surprises. No scope creep.\*\*` with
just `No hidden costs. No surprises. No scope creep.` and rely on the existing
<b><em> wrapper in the same line to provide bold/italic styling.
| faqs: | ||
| - title: "How long does the audit take?" | ||
| content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." | ||
|
|
||
| - title: "What if we need help implementing the recommendations?" | ||
| content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." | ||
|
|
||
| - title: "What size teams is this for?" | ||
| content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." | ||
|
|
||
| - title: "What IaC tools do you support?" | ||
| content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." | ||
|
|
||
| - title: "What if we're not ready to act on recommendations immediately?" | ||
| content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." |
There was a problem hiding this comment.
All FAQ entries have identical placeholder content.
Each FAQ has a unique question but the same answer: "The audit spans 1 week..." This appears to be copy-paste placeholder content. Each question needs its own relevant answer:
- "How long does the audit take?" → current answer is appropriate
- "What if we need help implementing the recommendations?" → needs implementation support answer
- "What size teams is this for?" → needs team size guidance
- "What IaC tools do you support?" → needs supported tools list
- "What if we're not ready to act on recommendations immediately?" → needs timeline flexibility answer
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-questions.md` around lines 12 - 26, The faqs array
contains five entries under the faqs key with distinct title strings but all
share the same placeholder content; replace the repeated "The audit spans 1
week..." answer for each title with specific, relevant text: keep the current
answer for "How long does the audit take?", add an implementation-support answer
for "What if we need help implementing the recommendations?" (describe support
options such as remediation assistance, consulting hours or follow-up
engagement), add team-size guidance for "What size teams is this for?" (e.g.,
typical engagements for small/medium/large teams and recommended contacts), list
supported IaC tools for "What IaC tools do you support?" (e.g., Terraform,
CloudFormation, ARM/Bicep, Pulumi, Kubernetes manifests), and provide a
timeline/flexibility answer for "What if we're not ready to act on
recommendations immediately?" (e.g., offering phased remediation,
prioritization, and re-assessment options); update the content values under the
existing faqs entries (use the title strings to locate each entry) with these
tailored answers.
| <div class="rowLinks text-center pt-4 mt-1"> | ||
| <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> | ||
| </div> No newline at end of file |
There was a problem hiding this comment.
Replace raw CTA HTML with the button shortcode and a real target URL.
Line 33 uses href="/#" (effectively a dead CTA) and raw button markup. This should be rendered via the shared shortcode for consistency and maintainability.
As per coding guidelines: Use provided Hugo shortcodes (button, buttonout, form, testimonials, faqs, team, services, process, supports, client-logos) in content instead of duplicating HTML.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-what-you-get.md` around lines 32 - 34, Replace the raw
anchor/button HTML (the div with class "rowLinks" containing <a
href="/#">Schedule a Discovery Call</a>) with the shared Hugo "button" shortcode
and set its href to a real scheduling target (e.g., your contact page or
calendar/booking URL); use the "button" shortcode name so styling and behavior
are consistent across the site and remove the dead href="/#". Ensure the inner
text remains "Schedule a Discovery Call" and preserve any needed wrapper
(rowLinks) for layout.
| banner_btn_label: Schedule a Discovery Call | ||
| banner_btn_link: /# | ||
| #banner_link_label: Audit Your IaC → |
There was a problem hiding this comment.
Replace the placeholder banner CTA target.
banner_btn_link: /# makes the page’s primary CTA effectively dead. It should point to the actual booking/contact destination before this copy ships.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/services/iac-audit.md` around lines 8 - 10, The banner's CTA target
is a placeholder: replace the value of banner_btn_link (currently "/#") with the
real booking/contact URL so the primary CTA (banner_btn_label) points to the
actual scheduling or contact destination; update the string for banner_btn_link
to the production booking link or route used by your site.
|
|
||
| <main role="main" class="main-sections"> | ||
| {{ $myVar := .Params.sections }} | ||
| {{ $mgatag := index site.Taxonomies.section_categories }} |
There was a problem hiding this comment.
🧩 Analysis chain
🌐 Web query:
In Hugo templates, is {{ index site.Taxonomies.section_categories }}valid, or doesindexrequire a key/index argument (e.g.,index MAP "key")?
💡 Result:
{{ index site.Taxonomies.section_categories }} is not valid: Hugo’s index (alias of collections.Index) requires at least one key/index argument: index SLICE|MAP KEY... (e.g., {{ index $m "b" }}).[1]
If you just want the taxonomy map, use:
{{ site.Taxonomies.section_categories }}
Or, if you need to access it by a variable key (or a key that can’t be dot-accessed), use:
{{ index site.Taxonomies "section_categories" }}
[1]
Remove invalid index call to prevent template render failure.
Line 55 incorrectly uses index with only one argument. Hugo's index function requires at least one key/index argument (e.g., {{ index MAP "key" }}). To access the taxonomy map directly, use:
Fix
- {{ $mgatag := index site.Taxonomies.section_categories }}
+ {{ $mgatag := site.Taxonomies.section_categories }}📝 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.
| {{ $mgatag := index site.Taxonomies.section_categories }} | |
| {{ $mgatag := site.Taxonomies.section_categories }} |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/services/single.html` at line 55, The template uses an invalid call
to the Hugo index function: replace the incorrect "{{ $mgatag := index
site.Taxonomies.section_categories }}" by directly assigning the taxonomy map to
$mgatag (or, if you intended to select a specific key, call index with the map
and that key) so that $mgatag references site.Taxonomies.section_categories
correctly; update the assignment to use either direct access
(site.Taxonomies.section_categories) or a proper index call with both map and
key in the declaration for the variable $mgatag.
| <div id="faqsBlock"> | ||
| {{ range $index, $faq := .Page.Params.faqs }} | ||
| <div class="faqBx" id="faq-{{ $index }}"> | ||
| <h3 class="faqQ"> | ||
| <a href="javascript:void(0)">{{ $faq.title }}</a> | ||
| </h3> | ||
| <div class="faqA"> | ||
| {{ $faq.content | markdownify }} | ||
| </div> | ||
| </div> | ||
| {{ end }} | ||
| </div> No newline at end of file |
There was a problem hiding this comment.
Typo in filename: "accordian" should be "accordion".
The shortcode filename contains a spelling error. This affects how content authors invoke it ({{< accordian >}} vs {{< accordion >}}).
Suggested rename
Rename layouts/shortcodes/accordian.html → layouts/shortcodes/accordion.html
Then update references in content files (e.g., content/sections/iac-questions.md line 33).
🧰 Tools
🪛 HTMLHint (1.9.2)
[error] 1-1: Doctype must be declared before any non-comment content.
(doctype-first)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/shortcodes/accordian.html` around lines 1 - 12, Rename the shortcode
file from "accordian.html" to the correctly spelled "accordion.html" and update
all shortcode invocations from {{< accordian >}} to {{< accordion >}} (e.g.,
update content/sections/iac-questions.md and any other files referencing the old
name); ensure the template contents (the block using .Page.Params.faqs and ids
like faq-{{ $index }}) remain unchanged so the behavior is identical after
renaming.
| {{ $id := .Get "id" }} | ||
|
|
||
| {{ with .Page.Params.platform_tiles }} | ||
| <div class="row platform-row" id="{{ $id }}"> |
There was a problem hiding this comment.
Only render the id attribute when the shortcode caller passes one.
This currently outputs id="" for every call site that omits id, which creates invalid/duplicate DOM ids. Make the attribute conditional instead.
Suggested fix
-<div class="row platform-row" id="{{ $id }}">
+<div class="row platform-row"{{ with $id }} id="{{ . }}"{{ end }}>📝 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.
| <div class="row platform-row" id="{{ $id }}"> | |
| <div class="row platform-row"{{ with $id }} id="{{ . }}"{{ end }}> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/shortcodes/platform-tiles.html` at line 5, The div currently always
emits id="" which creates invalid/duplicate DOM ids; update the shortcode
template so the id attribute on the element with class "row platform-row" is
only rendered when the caller provides a non-empty $id (e.g. wrap the id
attribute in a conditional like if/with for $id), so when $id is empty the id
attribute is omitted entirely.

what
Summary by CodeRabbit
New Features
Content Updates
Style