feat: reconciled homepage redesign + IAC audit page#100
Conversation
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
✅ Deploy Preview for masterpoint ready!
To edit notification comments on pull requests, go to your Netlify project configuration. |
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
WalkthroughAdds an IaC Audit offering with new landing content, templates, shortcodes, and extensive SCSS/CSS updates including new utilities, color variables, responsive breakpoint changes, and banner/CTA adjustments across site templates and home sections. Changes
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes Suggested reviewers
🚥 Pre-merge checks | ✅ 3✅ Passed checks (3 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: 18
♻️ Duplicate comments (2)
content/sections/iac-cta.md (1)
20-20:⚠️ Potential issue | 🟡 MinorReplace placeholder link with actual discovery call URL.
The CTA button links to
/#, which is a placeholder. Update this to point to a real discovery call page or contact form. The same issue appears iniac-what-you-get.mdandiac-sound-familiar.md.🤖 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 with text "Schedule a Discovery Call" uses a placeholder href="/#" — replace the placeholder href value with the real discovery-call or contact-form URL (e.g., the site’s discovery page or /contact/discovery) in this file; locate the same anchor by its class "button btn-gradient" and identical link text and apply the same href replacement in iac-what-you-get.md and iac-sound-familiar.md so all three CTAs point to the actual discovery page.content/sections/iac-sound-familiar.md (1)
38-38:⚠️ Potential issue | 🟡 MinorReplace placeholder link with actual discovery call URL.
The CTA button links to
/#, which is a placeholder. This is the same issue found iniac-what-you-get.mdandiac-cta.md.🤖 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 38, Replace the placeholder href "/#" on the CTA anchor (the <a> with class "button btn-gradient" and text "Schedule a Discovery Call") with the real discovery call URL; update the same pattern in the other files with the identical CTA to ensure all CTAs (those with class "button btn-gradient" and that link text) point to the production discovery scheduling link.
🧹 Nitpick comments (4)
content/sections/home-our-word.md (1)
13-13: Consider heading hierarchy for accessibility.The h3 heading skips the h2 level (the front matter
titleserves as h1). While this may be intentional for visual styling, it can impact accessibility for screen readers and SEO.Consider either:
- Using h2 instead of h3, or
- Adding an h2 heading before this h3
♿ Optional fix for semantic heading hierarchy
-### Our clients love our hands-on approach {.text-gradient .quoteLabel} +## Our clients love our hands-on approach {.text-gradient .quoteLabel}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/home-our-word.md` at line 13, The heading "### Our clients love our hands-on approach {.text-gradient .quoteLabel}" skips an h2 and may harm accessibility; update this line to use an h2 ("## Our clients love our hands-on approach {...}") or insert a preceding h2-level heading before this h3 to restore proper semantic hierarchy so screen readers and SEO see a correct H1→H2→H3 structure.layouts/shortcodes/services.html (1)
10-17: Consider adding a fallback forhome_description.The title field correctly falls back from
.Params.home_titleto.Title(lines 11-15), buthome_descriptionon line 17 has no fallback. If a service page doesn't definehome_description, this will render an emptyserviceDescdiv.For consistency with the title pattern, consider adding a fallback to
.Description:♻️ Proposed fix
- <div class="serviceDesc">{{.Params.home_description}}</div> + <div class="serviceDesc"> + {{if .Params.home_description}} + {{.Params.home_description}} + {{else}} + {{.Description}} + {{end}} + </div>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@layouts/shortcodes/services.html` around lines 10 - 17, The service description currently renders only .Params.home_description and can be empty; update the template so the serviceDesc div falls back to .Description when .Params.home_description is missing (mirror the title logic used for .Params.home_title/.Title). Locate the serviceDesc div that references .Params.home_description and change its content to use .Params.home_description if present, otherwise use .Description so the block always displays a meaningful description.layouts/shortcodes/cards.html (1)
16-16: Consider adding a guard for missingintrofield.Unlike
iconandtitlewhich have{{with}}guards,introis rendered unconditionally. If a card entry lacks anintrofield, this could produce unexpected output.♻️ Proposed fix
- <p>{{ .intro | safeHTML }}</p> + {{with .intro}} + <p>{{ . | safeHTML }}</p> + {{end}}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@layouts/shortcodes/cards.html` at line 16, The template renders .intro unguarded which can output unwanted/empty HTML when intro is missing; wrap the intro usage with a conditional (e.g., a {{ with .intro }} ... {{ end }} or an if check) targeting the .intro value in layouts/shortcodes/cards.html so the <p>{{ .intro | safeHTML }}</p> is only emitted when .intro is present.content/sections/home-efficient-platforms.md (1)
15-41: Consider using the platform-tiles shortcode to reduce raw HTML.This section uses raw HTML to render platform tiles. The
platform-tilesshortcode (used iniac-what-we-do.md) could simplify this implementation and align with the guideline to use Hugo shortcodes instead of duplicating HTML. You would defineplatform_tilesentries in the front matter and invoke{{< platform-tiles ... >}}in the body.♻️ Example refactor using the shortcode
Add to front matter:
platform_tiles: - icon: '<img src="/img/noun-developer-7187679.svg" alt="Developer" />' count: '2000+' cta: 'Engineering Hours Saved Annually' - icon: '<img src="/img/noun-cycle-7222105.svg" alt="Cycle" />' count: '10x' cta: 'Faster Plan & Apply Times' - icon: '<img src="/img/noun-reduction-7894266.svg" alt="Reduction" />' count: '10x' cta: 'Reduction in Infrastructure Automation Costs'Replace lines 15-41 with:
{{< platform-tiles col="col-md-4" id="platform-row" >}}Note: Verify that the
platform-tilesshortcode supports thecountandctafields as shown. Adjust the front matter structure as needed based on the shortcode's implementation.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/home-efficient-platforms.md` around lines 15 - 41, Replace the duplicated raw HTML tiles in home-efficient-platforms.md with the existing Hugo shortcode by moving the three tile entries into front matter as platform_tiles (use keys icon, count, cta) and invoking the shortcode {{< platform-tiles col="col-md-4" id="platform-row" >}} in the body; ensure the front-matter key name matches the shortcode’s expected input (platform_tiles vs platform-tiles) and confirm the shortcode supports count and cta fields (compare usage in iac-what-we-do.md) before removing the HTML block.
🤖 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 1920-1941: The horizontal connector created by
.platform-row:before should be hidden when the .platform-tiles cards stack
(below the Bootstrap md breakpoint); add a responsive rule that targets the md
breakpoint (e.g., max-width: 767.98px) and set .platform-row:before to not
display (or height:0) so the line doesn't cut through stacked .col / col-md-4
tiles. Update the stylesheet near .platform-row (reference .platform-row:before,
.platform-tiles, col-md-4) with that media query to disable the connector on
small screens.
- Around line 177-197: In .checked-list li:before add a generic family to the
Font Awesome declaration (e.g., change font-family "Font Awesome 6 Free" to
include a fallback like sans-serif), remove the non-standard unprefixed
text-fill-color property (keep only -webkit-text-fill-color: transparent), and
in the audit banner rule that sets background-image (the selector using
background-image: url(/img/banner_iac_bg.png)) wrap the URL in quotes (e.g.,
url("/img/banner_iac_bg.png")) to satisfy stylelint.
In `@content/_index.md`:
- Around line 8-9: The CTA currently uses banner_btn_link: /# which just reloads
the page; update the banner_btn_link value in content/_index.md to point to the
actual assessment form anchor (replace /# with the form's fragment identifier,
e.g. `#assessment-form` or the exact id used by the form) while keeping
banner_btn_label: Book A Call unchanged so the button scrolls/jumps directly to
the assessment form element.
In `@content/sections/home-efficient-platforms.md`:
- Line 19: Update the image src attributes in the platformIcon img elements to
use absolute paths beginning with "/" instead of relative paths; locate the
<img> tags inside the "platformIcon" divs (e.g., the one using
src="img/noun-developer-7187679.svg") and change their src values to start with
"/img/..." for all occurrences in this file (also update the other platformIcon
img tags referenced elsewhere in the same file).
In `@content/sections/home-turn-chaos.md`:
- Line 30: The image src in the <div class="bg-image"> uses a relative path
"img/bg_audit_home.png" which can 404; update the <img> element's src to use the
leading-slash path "/img/bg_audit_home.png" and correct the alt text typo from
"Backround" to "Background" so the tag reads with the standardized /img/ path
and accurate alt string.
In `@content/sections/iac-questions.md`:
- Around line 13-26: Replace the duplicated placeholder answer used for the FAQ
entries titled "What if we need help implementing the recommendations?", "What
size teams is this for?", "What IaC tools do you support?", and "What if we're
not ready to act on recommendations immediately?" with distinct, specific
responses: for "What if we need help implementing the recommendations?" explain
available implementation support or consulting engagements and next steps; for
"What size teams is this for?" state supported team sizes and typical engagement
scope; for "What IaC tools do you support?" list supported tools (e.g.,
Terraform, CloudFormation, Pulumi, ARM) and any limitations; and for "What if
we're not ready to act on recommendations immediately?" describe how
recommendations are prioritized, stored, and when/how to re-engage. Update the
content fields corresponding to those title strings accordingly.
In `@content/sections/iac-sound-familiar.md`:
- Line 10: Update the misspelled section ID by changing the frontmatter `id:
iac-sound-familier` to `id: iac-sound-familiar`, and simultaneously update the
corresponding CSS selector `#iac-sound-familier` in the stylesheet to
`#iac-sound-familiar` (search for the selector in custom.scss around the
existing rule near line ~3659) so the markup ID and CSS rule remain consistent.
In `@content/sections/iac-the-results.md`:
- Around line 13-20: Update the img tags emitted by the shortcode so they
include empty alt attributes (alt="") to mark them decorative; specifically
adjust the icon strings associated with the tiles titled "Audit", "Innovate",
and "Operate" (the values like '<img src="/img/noun-developer-7187679.svg">',
'<img src="/img/noun-cycle-7222105.svg">', '<img
src="/img/noun-reduction-7894266.svg">') to '<img src="..." alt="">' so
assistive tech doesn't announce the filenames. Ensure you only add alt="" unless
you intend the image to be announced and then provide meaningful alt text
instead.
- Line 30: The markdown headings are using inconsistent levels (starts with "###
The Results" then later uses "####" subheadings), triggering markdownlint;
update the top-level section heading "### The Results" to "## The Results" and
change the subsequent subsection headings currently using "####" in the
following block (lines shown in review: 42-68) to "###" so the document outline
is consistent (section level = ##, subsections = ###) throughout; ensure any
headings with classes like "{.sectionTitle .big ...}" retain their class
annotations when you adjust the leading `#s`.
- Around line 32-33: Replace the raw anchor and attribute block in
iac-the-results.md with the site's button shortcode: remove the <a class="button
btn-gradient" href="/#">…</a> and the `{.pt-4 .mt-1}` block, and instead use the
`button` shortcode to supply the path and class (pointing to "/contact/" and
using "btn-gradient") wrapping the label "Schedule a Discovery Call" so the
styling and link are applied correctly via the shortcode.
In `@content/sections/iac-what-you-get.md`:
- Line 33: The CTA anchor using href="/#" (see the "<a class=\"button
btn-gradient\">Schedule a Discovery Call</a>" instances) is a placeholder and
must be updated across the listed files; locate every anchor with class "button
btn-gradient" or the exact link text "Schedule a Discovery Call" in
content/sections/iac-what-you-get.md, content/sections/iac-the-results.md,
content/sections/iac-sound-familiar.md, content/sections/iac-cta.md, and
content/services/audit.md and replace href="/#" with the real discovery/booking
URL (contact form or calendar) so the button navigates to the actual discovery
call page.
In `@content/services/audit.md`:
- Line 9: Update the placeholder banner_btn_link value (banner_btn_link) which
is currently set to "/#" to the intended destination URL (e.g., your Calendly or
contact page) so the button navigates correctly; replace the placeholder with
the actual URL used elsewhere (for example the Calendly URL pattern used in
home-turn-chaos.md) and ensure the link is an absolute URL like
"https://calendly.com/your-username" or the correct contact page.
In `@content/steps/operate.md`:
- Around line 2-3: There are two duplicate YAML frontmatter keys named "title"
causing the first ("Platform Engineering as a Service") to be ignored; update
the frontmatter so keys are unique—either remove the unwanted "title" line or
rename the first "title" to a different key (e.g., "list_title") to preserve
both values, ensuring the frontmatter now contains one "title" and, if needed,
"list_title".
In `@layouts/partials/head.html`:
- Around line 126-131: The page is loading both Font Awesome JS and CSS which
causes double-rendering; pick one approach and remove the other: either keep the
CSS <link rel="stylesheet" href="...all.min.css" ...> and delete the Font
Awesome JS <script src="...all.min.js">, or keep the JS <script
src="...all.min.js"> and remove the CSS <link rel="stylesheet"
href="...all.min.css">; ensure only one of those assets remains (and remove any
duplicate crossorigin/referrerpolicy attributes related to the removed asset).
In `@layouts/services/single.html`:
- Around line 13-19: The template uses an h3 for the page heading; change the
element that wraps the service title from h3 to h1 while preserving the existing
class (e.g., keep class="text-pine") and the conditional logic that renders
.Params.banner_title or .Title (the same safeHTML calls), and then update the
CSS selector in assets to target the audit-banner presentation instead of
relying on heading level; ensure only the tag changes (h3 → h1) and not the
classes or content logic.
- Line 7: Add explicit front-matter alt fields (e.g., banner_image_alt and
section_image_alt) and render them on the corresponding <img> tags that use
.Params.banner_image and .Params.section_image so content authors can provide
alt text; when the front-matter value is missing default the alt attribute to an
empty string ("") to mark images as decorative. Update the template spots that
output .Params.banner_image (the "banner-image bg-image" <img>) and the section
image block that outputs .Params.section_image to include alt="{{
.Params.banner_image_alt | default "" }}" and alt="{{ .Params.section_image_alt
| default "" }}" respectively.
In `@layouts/shortcodes/accordian.html`:
- Around line 1-12: Rename the shortcode file from accordian.html to
accordion.html and update all usages to the correct name: replace the shortcode
call in content/sections/iac-questions.md (change {{< accordian >}} to {{<
accordion >}}) and search for any other occurrences of the misspelled shortcode;
keep the inner template content (the div with id "faqsBlock", .faqBx, .faqQ,
.faqA) unchanged so it continues to match assets/js/plugins.js.
In `@layouts/shortcodes/cards.html`:
- Around line 4-5: The rendered div currently outputs id="{{ $id }}" even when
no id is provided, producing an empty id attribute; update the shortcode
template (where .Page.Params.cards and the div with id="{{ $id }}" are defined)
to only emit the id attribute when $id is non-empty — i.e., obtain the id into
the variable ($id) the template uses and wrap the id="{{ $id }}" portion in a
conditional that checks $id before rendering so no empty id="" appears in the
output.
---
Duplicate comments:
In `@content/sections/iac-cta.md`:
- Line 20: The CTA anchor with text "Schedule a Discovery Call" uses a
placeholder href="/#" — replace the placeholder href value with the real
discovery-call or contact-form URL (e.g., the site’s discovery page or
/contact/discovery) in this file; locate the same anchor by its class "button
btn-gradient" and identical link text and apply the same href replacement in
iac-what-you-get.md and iac-sound-familiar.md so all three CTAs point to the
actual discovery page.
In `@content/sections/iac-sound-familiar.md`:
- Line 38: Replace the placeholder href "/#" on the CTA anchor (the <a> with
class "button btn-gradient" and text "Schedule a Discovery Call") with the real
discovery call URL; update the same pattern in the other files with the
identical CTA to ensure all CTAs (those with class "button btn-gradient" and
that link text) point to the production discovery scheduling link.
---
Nitpick comments:
In `@content/sections/home-efficient-platforms.md`:
- Around line 15-41: Replace the duplicated raw HTML tiles in
home-efficient-platforms.md with the existing Hugo shortcode by moving the three
tile entries into front matter as platform_tiles (use keys icon, count, cta) and
invoking the shortcode {{< platform-tiles col="col-md-4" id="platform-row" >}}
in the body; ensure the front-matter key name matches the shortcode’s expected
input (platform_tiles vs platform-tiles) and confirm the shortcode supports
count and cta fields (compare usage in iac-what-we-do.md) before removing the
HTML block.
In `@content/sections/home-our-word.md`:
- Line 13: The heading "### Our clients love our hands-on approach
{.text-gradient .quoteLabel}" skips an h2 and may harm accessibility; update
this line to use an h2 ("## Our clients love our hands-on approach {...}") or
insert a preceding h2-level heading before this h3 to restore proper semantic
hierarchy so screen readers and SEO see a correct H1→H2→H3 structure.
In `@layouts/shortcodes/cards.html`:
- Line 16: The template renders .intro unguarded which can output unwanted/empty
HTML when intro is missing; wrap the intro usage with a conditional (e.g., a {{
with .intro }} ... {{ end }} or an if check) targeting the .intro value in
layouts/shortcodes/cards.html so the <p>{{ .intro | safeHTML }}</p> is only
emitted when .intro is present.
In `@layouts/shortcodes/services.html`:
- Around line 10-17: The service description currently renders only
.Params.home_description and can be empty; update the template so the
serviceDesc div falls back to .Description when .Params.home_description is
missing (mirror the title logic used for .Params.home_title/.Title). Locate the
serviceDesc div that references .Params.home_description and change its content
to use .Params.home_description if present, otherwise use .Description so the
block always displays a meaningful description.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: b922287c-856e-4024-9094-4612f738832d
⛔ Files ignored due to path filters (15)
static/img/banner_iac_bg.pngis excluded by!**/*.pngstatic/img/bg_audit_home.pngis excluded by!**/*.pngstatic/img/bg_iac_cta.jpgis excluded by!**/*.jpgstatic/img/bg_make_infrastructure.pngis excluded by!**/*.pngstatic/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/img/noun-cycle-7222105.svgis excluded by!**/*.svgstatic/img/noun-developer-7187679.svgis excluded by!**/*.svgstatic/img/noun-reduction-7894266.svgis excluded by!**/*.svgstatic/js/bootstrap.bundle.min.jsis excluded by!**/*.min.js
📒 Files selected for processing (38)
assets/css/custom.scssassets/css/variables.scsscontent/_index.mdcontent/sections/home-efficient-platforms.mdcontent/sections/home-join-clients.mdcontent/sections/home-make-infrastructure.mdcontent/sections/home-our-word.mdcontent/sections/home-specialized-services.mdcontent/sections/home-turn-chaos.mdcontent/sections/home-what-is-masterpoint.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/audit.mdcontent/services/iac-audit.mdcontent/services/innovate.mdcontent/services/operate.mdcontent/services/spacelift.mdcontent/services/team-training.mdcontent/steps/audit.mdcontent/steps/innovate.mdcontent/steps/operate.mdlayouts/_default/_markup/render-heading.htmllayouts/index.htmllayouts/partials/head.htmllayouts/partials/scripts.htmllayouts/services/list.htmllayouts/services/single.htmllayouts/shortcodes/accordian.htmllayouts/shortcodes/cards.htmllayouts/shortcodes/platform-tiles.htmllayouts/shortcodes/services.htmllayouts/steps/list.htmllayouts/steps/single.html
💤 Files with no reviewable changes (5)
- content/services/team-training.md
- content/services/spacelift.md
- content/services/operate.md
- content/services/iac-audit.md
- content/services/innovate.md
| .checked-list { | ||
| li { | ||
| font-weight: 400; | ||
| &:before { | ||
| font-size: 1.55rem; | ||
| content: "\f058"; | ||
| font-weight: 900; | ||
| width: auto; | ||
| height: auto; | ||
| 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:
# First, let's check if the file exists and read the relevant sections
file="assets/css/custom.scss"
if [ -f "$file" ]; then
echo "=== Lines 177-197 (checkmark block) ==="
sed -n '177,197p' "$file"
echo ""
echo "=== Lines 3584-3590 (audit banner background) ==="
sed -n '3584,3590p' "$file"
fiRepository: masterpointio/masterpoint.io
Length of output: 826
🏁 Script executed:
# Check for stylelint configuration files
find . -maxdepth 2 -type f \( -name ".stylelintrc*" -o -name "stylelint.config.*" \) 2>/dev/null | head -20Repository: masterpointio/masterpoint.io
Length of output: 91
🏁 Script executed:
# Check if stylelint is available and what version
which stylelint && npm list stylelint 2>/dev/null | head -5Repository: masterpointio/masterpoint.io
Length of output: 117
🏁 Script executed:
# Read the stylelint configuration
cat .stylelintrc.jsonRepository: masterpointio/masterpoint.io
Length of output: 1078
🏁 Script executed:
# Let's also check the context around line 3584 to better understand the url() issue
sed -n '3578,3595p' "assets/css/custom.scss"Repository: masterpointio/masterpoint.io
Length of output: 527
🏁 Script executed:
# Let's verify the exact line numbers for the issues
echo "=== Exact line numbers for checkmark block issues ==="
grep -n "text-fill-color: transparent;" "assets/css/custom.scss"
grep -n "font-family.*Font Awesome 6 Free" "assets/css/custom.scss"
echo ""
echo "=== Exact line numbers for url() issue ==="
grep -n "url(/img/banner_iac_bg.png)" "assets/css/custom.scss"Repository: masterpointio/masterpoint.io
Length of output: 441
Fix three stylelint violations in the checkmark and audit banner blocks.
The code introduces three stylelint rule violations:
- Lines 186, 194-196:
font-family: "Font Awesome 6 Free"is missing a generic family keyword, andtext-fill-color: transparent(non-prefixed) is not a recognized CSS property. - Line 3589:
background-image: url(/img/banner_iac_bg.png)has an unquoted URL.
Fix by adding a generic family (e.g., sans-serif), removing the non-prefixed text-fill-color, and quoting the URL.
🧰 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 177 - 197, In .checked-list li:before
add a generic family to the Font Awesome declaration (e.g., change font-family
"Font Awesome 6 Free" to include a fallback like sans-serif), remove the
non-standard unprefixed text-fill-color property (keep only
-webkit-text-fill-color: transparent), and in the audit banner rule that sets
background-image (the selector using background-image:
url(/img/banner_iac_bg.png)) wrap the URL in quotes (e.g.,
url("/img/banner_iac_bg.png")) to satisfy stylelint.
| .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%); | ||
| } | ||
| .col { | ||
| padding-top: 12px; | ||
| padding-bottom: 12px; | ||
| } |
There was a problem hiding this comment.
Hide the connector once the platform tiles stack.
platform-tiles is rendered with col-md-4, so below the md breakpoint these cards become a single column, but .platform-row:before stays a horizontal line at top: 50% and cuts through the middle of the mobile layout.
💡 Minimal 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;
}
}📝 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.
| .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%); | |
| } | |
| .col { | |
| padding-top: 12px; | |
| padding-bottom: 12px; | |
| } | |
| .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 1920 - 1941, The horizontal connector
created by .platform-row:before should be hidden when the .platform-tiles cards
stack (below the Bootstrap md breakpoint); add a responsive rule that targets
the md breakpoint (e.g., max-width: 767.98px) and set .platform-row:before to
not display (or height:0) so the line doesn't cut through stacked .col /
col-md-4 tiles. Update the stylesheet near .platform-row (reference
.platform-row:before, .platform-tiles, col-md-4) with that media query to
disable the connector on small screens.
|
|
||
| <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> |
There was a problem hiding this comment.
Use absolute image paths starting with "/".
The image sources use relative paths (img/...) instead of absolute paths. As per coding guidelines, reference images in content using the /img/ path.
🛠️ Proposed fix
-<div class="platformIcon"><img src="img/noun-developer-7187679.svg" alt="Developer" /></div>
+<div class="platformIcon"><img src="/img/noun-developer-7187679.svg" alt="Developer" /></div>-<div class="platformIcon"><img src="img/noun-cycle-7222105.svg" alt="Cycle" /></div>
+<div class="platformIcon"><img src="/img/noun-cycle-7222105.svg" alt="Cycle" /></div>-<div class="platformIcon"><img src="img/noun-reduction-7894266.svg" alt="Reduction" /></div>
+<div class="platformIcon"><img src="/img/noun-reduction-7894266.svg" alt="Reduction" /></div>Also applies to: 27-27, 35-35
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/home-efficient-platforms.md` at line 19, Update the image
src attributes in the platformIcon img elements to use absolute paths beginning
with "/" instead of relative paths; locate the <img> tags inside the
"platformIcon" divs (e.g., the one using src="img/noun-developer-7187679.svg")
and change their src values to start with "/img/..." for all occurrences in this
file (also update the other platformIcon img tags referenced elsewhere in the
same file).
| </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.
Image path missing leading slash.
The path img/bg_audit_home.png is relative. Per coding guidelines, images should use the /img/ path (starting with /). This relative path may cause a 404 depending on the page's URL depth.
🔧 Proposed fix
-<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 the typo "Backround" → "Background" in the alt text.
As per coding guidelines: "Reference images in content using the /img/ path (which maps to /static/img/)".
📝 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> |
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)
[warning] 30-30: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/home-turn-chaos.md` at line 30, The image src in the <div
class="bg-image"> uses a relative path "img/bg_audit_home.png" which can 404;
update the <img> element's src to use the leading-slash path
"/img/bg_audit_home.png" and correct the alt text typo from "Backround" to
"Background" so the tag reads with the standardized /img/ path and accurate alt
string.
| <link | ||
| rel="stylesheet" | ||
| href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.5.2/css/all.min.css" | ||
| crossorigin="anonymous" | ||
| referrerpolicy="no-referrer" | ||
| /> |
There was a problem hiding this comment.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find all Font Awesome class usages to understand the rendering needs
rg -n "fa-|fab |fas |far " --type html --type js -g '!node_modules'Repository: masterpointio/masterpoint.io
Length of output: 2794
🌐 Web query:
Font Awesome 6 loading both JavaScript and CSS same time conflicts
💡 Result:
Loading both the Font Awesome 6 JavaScript (SVG + JS method) and CSS (Web Fonts method) on the same page simultaneously can cause conflicts and unpredictable behavior. Font Awesome 6 provides two mutually exclusive methods for displaying icons: Web Fonts (CSS-based) or SVG + JS (JavaScript-based). Combining them leads to issues like duplicate icon rendering, broken styles, or icons not displaying correctly because both systems attempt to process and replace the same icon elements (<i> tags with FA classes). Key reasons for conflicts: - The JS library scans the DOM for icon classes (e.g., fa-solid fa-user) and replaces them with inline SVG elements. - The CSS Web Fonts method uses font-face and content properties to render icons as text characters via the font-family. - When both are active, the JS may replace icons before/after CSS rendering, causing overlaps, incorrect styling, or failures. Official documentation emphasizes choosing one method: - Use Web Fonts + CSS: Link fontawesome.css + style CSS files (e.g., solid.css). No JS needed. - Use SVG + JS: Include fontawesome.js + style JS files (e.g., solid.js). No CSS needed. To resolve: 1. Pick one method and remove the other completely. 2. Use Font Awesome Kits (recommended): They default to SVG + JS but offer CSS-only options in settings. 3. Enable Conflict Detection (official tool) to identify multiple loads: Add the conflict-detection.js script or enable in Kit settings, then check browser console. 4. Ensure only one version of FA 6 is loaded—no mixing with older versions (FA 4/5). Example correct setups: Web Fonts + CSS: <link rel="stylesheet" href="path/to/fontawesome.css"> <link rel="stylesheet" href="path/to/solid.css"> <i class="fa-solid fa-user"></i> SVG + JS: <script src="path/to/fontawesome.js" crossorigin="anonymous"></script> <script src="path/to/solid.js" crossorigin="anonymous"></script> <i class="fa-solid fa-user"></i> Kits handle subsetting and conflicts automatically. Avoid all.js/all.css if possible for better performance—use individual styles.
Citations:
- 1: https://docs.fontawesome.com/v6/web/dig-deeper/conflict-detection
- 2: https://fontawesome.com/v6/docs/web/troubleshoot
- 3: https://docs.fontawesome.com/v6/web
- 4: https://docs.fontawesome.com/v6/apis/javascript/configuration
- 5: https://fontawesome.com/v6/docs/web/setup/host-yourself/svg-js
- 6: https://fontawesome.com/v6/docs/web/setup/host-yourself/webfonts
🌐 Web query:
Font Awesome 6.5 best practice JS CSS hybrid approach
💡 Result:
The best practice for a JS + CSS hybrid approach with Font Awesome 6.5 (part of the 6.x LTS series, latest 6.7.2 as of 2026-03-23) is to load the SVG + JavaScript framework (which automatically injects required base CSS via autoAddCss=true by default) while optionally including additional Web Fonts CSS files for specific use cases like CSS pseudo-elements. Key steps from official docs: 1. Use a Font Awesome Kit for easiest setup with auto-subsetting, performance optimization, and version pinning to 6.5.x if needed. Embed the JS code: <script src="https://kit.fontawesome.com/YOUR_KIT_CODE.js" crossorigin="anonymous" data-auto-add-css="true"></script> This handles CSS injection automatically. 2. For self-hosting (SVG + JS): - Load core: <script src="/path/to/fontawesome.js" data-auto-add-css="true" defer></script> - Load styles: <script src="/path/to/solid.js" defer></script> (repeat for regular, brands, etc.) - Use in HTML. JS scans DOM, replaces with inline SVG, and adds base CSS to . 3. Hybrid enhancement: If using CSS pseudo-elements (::before/::after), set config.searchPseudoElements=true (default false) or include Web Fonts CSS alongside: JS will detect and replace pseudo-elements with SVG if enabled. Configuration options (via data- attributes or config API): - data-auto-add-css="true": Injects base CSS for sizing/color (recommended). - data-auto-replace-svg="true": Replaces tags with SVG (default). - data-search-pseudo-elements="true": Handles CSS ::before icons. Benefits: SVG provides crisp scaling, advanced features (layers, masks, transforms); auto CSS handles basics; optional Web Fonts for legacy CSS. Avoid full Web Fonts if possible for smaller payloads with subsetting. For performance: Use Kits with auto-subsetting, defer JS, limit styles loaded. No major 6.5-specific changes to this approach; consistent across 6.x.
Citations:
- 1: https://docs.fontawesome.com/apis/javascript/configuration/
- 2: https://docs.fontawesome.com/v6/apis/javascript/configuration
- 3: https://fontawesome.com/v6/docs/web/setup/use-kit/
- 4: https://docs.fontawesome.com/web/dig-deeper/performance
- 5: https://fontawesome.com/docs/web/dig-deeper/webfont-vs-svg
- 6: https://github.com/FortAwesome/Font-Awesome/releases
🏁 Script executed:
#!/bin/bash
# Check the full head.html file to understand the context of both loads
cat -n layouts/partials/head.html | grep -A 10 -B 5 "font-awesome"Repository: masterpointio/masterpoint.io
Length of output: 913
Loading both Font Awesome JS and CSS may cause rendering conflicts.
The file now loads both Font Awesome JS (line 122) and CSS (line 128). These are two different rendering approaches:
- JS (
all.min.js): Replaces<i>elements with inline SVGs - CSS (
all.min.css): Uses web fonts with pseudo-elements
Loading both simultaneously can cause double-rendering, visual glitches, or icons appearing twice. Font Awesome 6 documentation explicitly recommends using one approach, not both. Choose either the SVG + JS method (remove CSS) or the Web Fonts + CSS method (remove JS).
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/partials/head.html` around lines 126 - 131, The page is loading both
Font Awesome JS and CSS which causes double-rendering; pick one approach and
remove the other: either keep the CSS <link rel="stylesheet"
href="...all.min.css" ...> and delete the Font Awesome JS <script
src="...all.min.js">, or keep the JS <script src="...all.min.js"> and remove the
CSS <link rel="stylesheet" href="...all.min.css">; ensure only one of those
assets remains (and remove any duplicate crossorigin/referrerpolicy attributes
related to the removed asset).
| class="page-default sections-template {{if .Params.banner_image}} withBannerImg {{end}}"> | ||
| {{ partial "header.html" . }} | ||
| <section id="banner"> | ||
| {{if .Params.banner_image}} <div class="banner-image bg-image"><img src="{{.Params.banner_image}}" /></div> |
There was a problem hiding this comment.
Expose alt text for the new service-page images.
banner_image and section_image are rendered without alt, and this template doesn’t give content authors any way to provide one. Add explicit front matter fields for those alt values, with "" as the decorative default.
💡 Minimal template change
- {{if .Params.banner_image}} <div class="banner-image bg-image"><img src="{{.Params.banner_image}}" /></div>
+ {{if .Params.banner_image}} <div class="banner-image bg-image"><img src="{{ .Params.banner_image }}" alt="{{ .Params.banner_image_alt | default "" }}" /></div>
@@
- <img src="{{.Params.section_image}}" />
+ <img src="{{ .Params.section_image }}" alt="{{ .Params.section_image_alt | default "" }}" />Also applies to: 75-77
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/services/single.html` at line 7, Add explicit front-matter alt fields
(e.g., banner_image_alt and section_image_alt) and render them on the
corresponding <img> tags that use .Params.banner_image and .Params.section_image
so content authors can provide alt text; when the front-matter value is missing
default the alt attribute to an empty string ("") to mark images as decorative.
Update the template spots that output .Params.banner_image (the "banner-image
bg-image" <img>) and the section image block that outputs .Params.section_image
to include alt="{{ .Params.banner_image_alt | default "" }}" and alt="{{
.Params.section_image_alt | default "" }}" respectively.
| <h3 class="text-pine"> | ||
| {{if .Params.banner_title}} | ||
| {{.Params.banner_title|safeHTML}} | ||
| {{ else}} | ||
| {{ .Title | safeHTML }} | ||
| {{end}} | ||
| </h3> |
There was a problem hiding this comment.
Use an H1 for the service-page title.
This is the page heading, but the template renders it as h3. That leaves service pages without a top-level heading and forces the section content to start lower than it should. Keep the current visuals on a class and retarget the audit-banner selector in assets/css/custom.scss instead of using heading level for presentation.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/services/single.html` around lines 13 - 19, The template uses an h3
for the page heading; change the element that wraps the service title from h3 to
h1 while preserving the existing class (e.g., keep class="text-pine") and the
conditional logic that renders .Params.banner_title or .Title (the same safeHTML
calls), and then update the CSS selector in assets to target the audit-banner
presentation instead of relying on heading level; ensure only the tag changes
(h3 → h1) and not the classes or content logic.
| <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.
🧩 Analysis chain
🏁 Script executed:
#!/bin/bash
# Find all content files using the accordian shortcode
rg -n "accordian" --type mdRepository: masterpointio/masterpoint.io
Length of output: 126
🏁 Script executed:
# Search for all references to accordian and accordion to understand full scope
rg -i "accordian|accordion" --type md --type html --type toml --type yamlRepository: masterpointio/masterpoint.io
Length of output: 123
Filename typo: "accordian" should be "accordion".
The shortcode filename accordian.html contains a misspelling. This should be accordion.html for clarity and standard spelling conventions. Update the corresponding content reference in content/sections/iac-questions.md from {{< accordian >}} to {{< accordion >}}.
The template implementation itself is correct and properly matches the existing JavaScript handler in assets/js/plugins.js that targets #faqsBlock, .faqBx, .faqQ, and .faqA classes.
🧰 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 accordion.html and update all usages to the correct
name: replace the shortcode call in content/sections/iac-questions.md (change
{{< accordian >}} to {{< accordion >}}) and search for any other occurrences of
the misspelled shortcode; keep the inner template content (the div with id
"faqsBlock", .faqBx, .faqQ, .faqA) unchanged so it continues to match
assets/js/plugins.js.
There was a problem hiding this comment.
Seems like the humans are having a chat. I'll hop back into my burrow for now. If you need me again, just tag @coderabbitai in a new comment, and I'll come hopping out!
| {{ with .Page.Params.cards }} | ||
| <div class="row row-cards" id="{{ $id }}"> |
There was a problem hiding this comment.
Empty id attribute rendered when no id is provided.
When the id parameter is not passed to the shortcode, line 5 renders id="", which is invalid HTML (empty id attributes are not allowed per HTML spec).
🐛 Proposed fix
{{ with .Page.Params.cards }}
-<div class="row row-cards" id="{{ $id }}">
+<div class="row row-cards"{{ 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.
| {{ with .Page.Params.cards }} | |
| <div class="row row-cards" id="{{ $id }}"> | |
| {{ with .Page.Params.cards }} | |
| <div class="row row-cards"{{ with $id }} id="{{ . }}"{{ end }}> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/shortcodes/cards.html` around lines 4 - 5, The rendered div currently
outputs id="{{ $id }}" even when no id is provided, producing an empty id
attribute; update the shortcode template (where .Page.Params.cards and the div
with id="{{ $id }}" are defined) to only emit the id attribute when $id is
non-empty — i.e., obtain the id into the variable ($id) the template uses and
wrap the id="{{ $id }}" portion in a conditional that checks $id before
rendering so no empty id="" appears in the output.
- Rename "Workflow Library" to "Pattern Library" across homepage and IAC sections - Update "workflows" to "patterns" in banner text and description - Point "Book A Call" button to Calendly link - Hide Spacelift service from homepage via visible flag Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Trigger first slide transition immediately on init and tune autoplay timing (3s timeout, 5s animation speed) so the carousel starts scrolling without a visible pause on page load. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
There was a problem hiding this comment.
Actionable comments posted: 6
♻️ Duplicate comments (1)
content/sections/iac-what-you-get.md (1)
33-33:⚠️ Potential issue | 🟠 MajorReplace placeholder CTA URL with a real booking/contact destination.
Line 33 still points to
/#, so the primary conversion CTA is effectively non-functional.🔧 Proposed fix
- <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> + <a class="button btn-gradient" href="/services/audit/">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-what-you-get.md` at line 33, The CTA anchor element with class "button btn-gradient" currently uses a placeholder href value "/#", making the button non-functional; update that anchor's href to the actual booking or contact destination (e.g., the live booking URL or your site's contact page) so the "Schedule a Discovery Call" button navigates correctly, and verify the link target and any tracking/query params are included as needed.
🧹 Nitpick comments (1)
layouts/shortcodes/services.html (1)
17-17: Mirror the title fallback for descriptions.Unlike the title, Line 17 now assumes every service defines
home_description. Keeping a.Descriptionfallback makes the shortcode more resilient if one page misses the new param.🛠️ Suggested fallback
- <div class="serviceDesc">{{.Params.home_description}}</div> + <div class="serviceDesc"> + {{if .Params.home_description}} + {{.Params.home_description}} + {{else}} + {{.Description}} + {{end}} + </div>🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@layouts/shortcodes/services.html` at line 17, The service description div currently uses .Params.home_description without a fallback, so update the shortcode to mirror the title logic by using .Params.home_description if present otherwise fall back to .Description; locate the serviceDesc element (class="serviceDesc") and change its content expression to prefer .Params.home_description and then .Description so pages missing the param still render a description.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Inline comments:
In `@content/sections/home-make-infrastructure.md`:
- Line 13: The heading "Make Infrastructure Your Competitive Edge" is currently
level h3 (###) causing an MD001 violation; change that heading to level h2 (##)
or ensure a preceding h2 exists in the same rendered context so the heading
hierarchy is correct—update the line containing "### Make Infrastructure <span
class=\"text-gradient\">Your Competitive Edge</span>" to use "##" (or add the
missing prior h2) to fix the heading-level increment.
- Line 17: Replace the duplicated raw anchor HTML (<a href="/case-studies"
class="button btn-outline-gradient btn-big">See Our Results →</a>) with the
Hugo "button" shortcode; use the same href and label and map the class intent
(outline-gradient, btn-big) to the shortcode's parameters so the visual style
and size remain identical—update the content to call the button shortcode
instead of literal HTML.
In `@content/sections/iac-what-you-get.md`:
- Line 13: Update the inline img tags used in the cards.icon fields so each
<img> includes a meaningful alt attribute; locate the icon entries (property
name "icon" whose value is '<img src="/img/icon_finding_reports.png"/>' and the
other similar icon lines) and add descriptive alt text (e.g., alt="Finding
reports icon") to each tag to improve screen-reader accessibility.
- Around line 1-34: The file iac-what-you-get.md fails Prettier/trunk
formatting; run the formatter (trunk fmt) against this file (look for the
frontmatter block and the cards/HTML sections such as the
title/id/iac-what-you-get and the cards array) to normalize whitespace, quotes
and markup, then commit the formatted changes so the trunk formatting check
passes.
- Around line 32-34: Replace the raw HTML CTA block (<div class="rowLinks..."><a
class="button btn-gradient"...>) with the site's Hugo button shortcode: remove
the div and anchor and invoke the button shortcode with the same label
("Schedule a Discovery Call"), the original href ("/#") and the btn-gradient
styling applied via the shortcode parameters or class argument so the shared
shortcode (button) is used instead of duplicating HTML.
In `@layouts/shortcodes/services.html`:
- Around line 6-7: The img tag rendering the service icon uses .Params.icon but
lacks an alt attribute; update the image element that references .Params.icon to
include an appropriate alt (use alt="" if the icon is purely decorative, or use
a descriptive value such as .Params.title or .Params.name when it conveys
information) so the service card meets basic accessibility requirements.
---
Duplicate comments:
In `@content/sections/iac-what-you-get.md`:
- Line 33: The CTA anchor element with class "button btn-gradient" currently
uses a placeholder href value "/#", making the button non-functional; update
that anchor's href to the actual booking or contact destination (e.g., the live
booking URL or your site's contact page) so the "Schedule a Discovery Call"
button navigates correctly, and verify the link target and any tracking/query
params are included as needed.
---
Nitpick comments:
In `@layouts/shortcodes/services.html`:
- Line 17: The service description div currently uses .Params.home_description
without a fallback, so update the shortcode to mirror the title logic by using
.Params.home_description if present otherwise fall back to .Description; locate
the serviceDesc element (class="serviceDesc") and change its content expression
to prefer .Params.home_description and then .Description so pages missing the
param still render a description.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: ae91cdd5-3668-4a24-b2f2-beeb883a7c7e
📒 Files selected for processing (5)
content/_index.mdcontent/sections/home-make-infrastructure.mdcontent/sections/iac-what-you-get.mdcontent/services/spacelift.mdlayouts/shortcodes/services.html
🚧 Files skipped from review as they are similar to previous changes (1)
- content/services/spacelift.md
| id: make-infrastructure | ||
| --- | ||
|
|
||
| ### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1 .text-uppercase} |
There was a problem hiding this comment.
Fix heading-level increment (h3 after no preceding h2).
Line 13 uses ###, which triggers MD001. Use ## here (or ensure a preceding ## exists in this rendered context).
Suggested update
-### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1 .text-uppercase}
+## Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1 .text-uppercase}📝 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.
| ### Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1 .text-uppercase} | |
| ## Make Infrastructure <span class="text-gradient">Your Competitive Edge</span> {.groupTitle .text-white .mb-1 .text-uppercase} |
🧰 Tools
🪛 markdownlint-cli2 (0.21.0)
[warning] 13-13: Heading levels should only increment by one level at a time
Expected: h2; Actual: h3
(MD001, heading-increment)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/home-make-infrastructure.md` at line 13, The heading "Make
Infrastructure Your Competitive Edge" is currently level h3 (###) causing an
MD001 violation; change that heading to level h2 (##) or ensure a preceding h2
exists in the same rendered context so the heading hierarchy is correct—update
the line containing "### Make Infrastructure <span class=\"text-gradient\">Your
Competitive Edge</span>" to use "##" (or add the missing prior h2) to fix the
heading-level increment.
|
|
||
| Code is easy to come by. But cheap code doesn’t make for an efficient platform. Proven patterns and strong automations do. Our IaC workshops and Pattern 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> |
There was a problem hiding this comment.
Replace raw button HTML with the Hugo button shortcode.
Line 17 duplicates button markup directly in content. Please switch to the provided shortcode to keep content consistent and maintainable.
Suggested update
-<a href="/case-studies" class="button btn-outline-gradient btn-big">See Our Results →</a>
+{{< button href="/case-studies" label="See Our Results →" class="btn-outline-gradient btn-big" >}}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".
📝 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 href="/case-studies" class="button btn-outline-gradient btn-big">See Our Results →</a> | |
| {{< button href="/case-studies" label="See Our Results →" class="btn-outline-gradient btn-big" >}} |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/home-make-infrastructure.md` at line 17, Replace the
duplicated raw anchor HTML (<a href="/case-studies" class="button
btn-outline-gradient btn-big">See Our Results →</a>) with the Hugo "button"
shortcode; use the same href and label and map the class intent
(outline-gradient, btn-big) to the shortcode's parameters so the visual style
and size remain identical—update the content to call the button shortcode
instead of literal HTML.
| id: iac-what-you-get | ||
|
|
||
| cards: | ||
| - icon: '<img src="/img/icon_finding_reports.png"/>' |
There was a problem hiding this comment.
Add alt text to card icons for accessibility.
Each inline <img> in cards.icon is missing an alt attribute, which hurts screen-reader UX.
♿ Proposed fix
- - icon: '<img src="/img/icon_finding_reports.png"/>'
+ - icon: '<img src="/img/icon_finding_reports.png" alt="Findings report icon"/>'
...
- - icon: '<img src="/img/icon_tailored_recommendations.png"/>'
+ - icon: '<img src="/img/icon_tailored_recommendations.png" alt="Tailored recommendations icon"/>'
...
- - icon: '<img src="/img/icon_access.png"/>'
+ - icon: '<img src="/img/icon_access.png" alt="Pattern library access icon"/>'
...
- - icon: '<img src="/img/icon_guidance.png"/>'
+ - icon: '<img src="/img/icon_guidance.png" alt="Expert guidance icon"/>'Also applies to: 16-16, 19-19, 22-22
🤖 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` at line 13, Update the inline img tags
used in the cards.icon fields so each <img> includes a meaningful alt attribute;
locate the icon entries (property name "icon" whose value is '<img
src="/img/icon_finding_reports.png"/>' and the other similar icon lines) and add
descriptive alt text (e.g., alt="Finding reports icon") to each tag to improve
screen-reader accessibility.
| <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.
Use the Hugo button shortcode instead of raw HTML for CTA.
This section duplicates button markup in content instead of using the shared shortcode pattern.
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
HTML CTA block (<div class="rowLinks..."><a class="button btn-gradient"...>)
with the site's Hugo button shortcode: remove the div and anchor and invoke the
button shortcode with the same label ("Schedule a Discovery Call"), the original
href ("/#") and the btn-gradient styling applied via the shortcode parameters or
class argument so the shared shortcode (button) is used instead of duplicating
HTML.
| {{if .Params.icon}} | ||
| <img src="{{.Params.icon}}" /> |
There was a problem hiding this comment.
Add an alt attribute to the service icon.
Line 7 renders an image without alt, so these cards miss a basic accessibility requirement. If the icon is decorative next to the visible heading, alt="" is the right value.
♿ Suggested fix
- <img src="{{.Params.icon}}" />
+ <img src="{{.Params.icon}}" alt="" />📝 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.
| {{if .Params.icon}} | |
| <img src="{{.Params.icon}}" /> | |
| {{if .Params.icon}} | |
| <img src="{{.Params.icon}}" alt="" /> |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@layouts/shortcodes/services.html` around lines 6 - 7, The img tag rendering
the service icon uses .Params.icon but lacks an alt attribute; update the image
element that references .Params.icon to include an appropriate alt (use alt=""
if the icon is purely decorative, or use a descriptive value such as
.Params.title or .Params.name when it conveys information) so the service card
meets basic accessibility requirements.
There was a problem hiding this comment.
- Carousel animation delay (Yang flagged: doesn't start scrolling for ~5 seconds)
- Verify mobile responsiveness of new IAC audit sections
- Verify blog anchor links still work
- Check carousel animation behavior
- Test mobile responsiveness
These are ✅ for me
… feature/homepage-redesign-reconciled
There was a problem hiding this comment.
Actionable comments posted: 6
♻️ Duplicate comments (8)
content/sections/iac-questions.md (1)
16-26:⚠️ Potential issue | 🟠 MajorFAQ entries still use placeholder duplicate answers.
Lines 16–26 still repeat the same answer for different questions, so users won’t get actionable information per question. Please replace each with question-specific content before merge.
💡 Suggested content update
- title: "What if we need help implementing the recommendations?" - content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." + content: "We can support implementation through a follow-on advisory engagement. We’ll prioritize fixes, define an execution plan, and work with your team to close gaps." - title: "What size teams is this for?" - content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." + content: "The audit is designed for teams from early-stage to enterprise. Scope is tailored to your repository count, environments, and delivery cadence." - title: "What IaC tools do you support?" - content: "The audit spans 1 week. You'll have findings and recommendations in hand quickly." + content: "We commonly assess Terraform, CloudFormation, Pulumi, and ARM/Bicep. If you use another framework, we can confirm fit during scoping." - 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." + content: "That’s okay—findings are delivered with severity and effort guidance so you can phase remediation over time. You can re-engage when priorities shift."🤖 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 16 - 26, The four FAQ entries (titles "What if we need help implementing the recommendations?", "What size teams is this for?", "What IaC tools do you support?", and "What if we're not ready to act on recommendations immediately?") currently reuse the same placeholder answer; replace each duplicate content string with a question-specific answer that explains next steps and expectations: for "help implementing" describe offered implementation support or handoff options and contact/process; for "team size" state recommended team profiles or minimum/ideal team composition; for "IaC tools" list supported IaC tools (e.g., Terraform, CloudFormation, Pulumi, ARM) and any version/limitations; and for "not ready to act" explain deferral options, retainer or phased engagement and how findings will be prioritized and revisited. Ensure each content value is a concise, actionable sentence tailored to its title.content/sections/iac-the-results.md (3)
31-32:⚠️ Potential issue | 🟠 MajorUse the shared button shortcode and replace placeholder link.
Line 31 uses raw
<a>withhref="/#"and Line 32 relies on a fragile attribute block; this should use the shared shortcode with a real destination.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".🔧 Suggested change
-<a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> -{.pt-4 .mt-1} +{{< button "/contact/" "btn-gradient" >}}Schedule a Discovery Call{{< /button >}} +{.pt-4 .mt-1}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/iac-the-results.md` around lines 31 - 32, Replace the raw anchor and fragile attribute block with the shared Hugo button shortcode: remove the <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> and the following {.pt-4 .mt-1} and instead insert the button shortcode configured with the real destination URL and label (use the site's canonical discovery or contact URL); ensure you use the "button" shortcode name so styling and classes are applied consistently across the site.
13-20:⚠️ Potential issue | 🟠 MajorAdd
altsemantics to platform tile icons.Lines 13, 16, and 19 still use inline
<img>withoutalt; setalt=""for decorative icons or meaningful alt text when needed.🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/iac-the-results.md` around lines 13 - 20, Update the three platform tile icon strings that currently use inline <img> tags for "Audit", "Innovate", and "Operate" to include proper alt attributes (use alt="" for purely decorative icons or a short meaningful description for informative images); specifically modify the icon values (the lines containing the '<img src="/img/noun-developer-7187679.svg">', '<img src="/img/noun-cycle-7222105.svg">', and '<img src="/img/noun-reduction-7894266.svg">') to '<img src="..." alt="...">' accordingly so each tile has appropriate alt semantics.
29-68:⚠️ Potential issue | 🟡 MinorFix heading hierarchy (
##section +###subsections).Line 29 starts at H3 and Lines 41/50/59/68 use H4, which triggers MD001 and creates an inconsistent document outline.
🔧 Suggested change
-### The Results<br> Teams See {.sectionTitle .big .text-gradient .d-inline .pb-0} +## The Results<br> Teams See {.sectionTitle .big .text-gradient .d-inline .pb-0} @@ -#### Save 1 FTE {.serviceTitle .text-white} +### Save 1 FTE {.serviceTitle .text-white} @@ -#### 10x Faster Operations {.serviceTitle .text-white} +### 10x Faster Operations {.serviceTitle .text-white} @@ -#### Fewer Incidents {.serviceTitle .text-white} +### Fewer Incidents {.serviceTitle .text-white} @@ -#### Stronger Security & Compliance {.serviceTitle .text-white} +### Stronger Security & Compliance {.serviceTitle .text-white}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/iac-the-results.md` around lines 29 - 68, Change the section heading "The Results" from H3 (###) to H2 (##) and promote each subsection heading ("Save 1 FTE", "10x Faster Operations", "Fewer Incidents", "Stronger Security & Compliance") from H4 (####) to H3 (###) so the document uses a consistent `##` section + `###` subsection hierarchy; update the heading markers in the lines containing those exact titles.content/sections/iac-what-you-get.md (2)
13-23:⚠️ Potential issue | 🟠 MajorAdd
altsemantics to all card icon images.Lines 13, 16, 19, and 22 include inline
<img>withoutalt. Please set meaningful alt text oralt=""for decorative icons to avoid filename announcements by assistive tech.🤖 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 13 - 23, The inline <img> tags used for the four cards (titles "Findings Report", "Tailored Recommendations", "Lifetime Access to IaC Pattern Library", and "1 Month of Expert Guidance") lack alt attributes; update each icon tag to include an appropriate alt text (or alt="" if purely decorative) so screen readers do not announce filenames—ensure the alt values are concise and descriptive for contentful icons or empty for decorative icons.
31-33:⚠️ Potential issue | 🟠 MajorReplace raw CTA HTML with shortcode and non-placeholder URL.
Line 32 still uses
href="/#"and duplicated button markup instead of the shared button shortcode.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".🔧 Suggested change
-<div class="rowLinks text-center pt-4 mt-1"> - <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> -</div> +{{< button "/contact/" "btn-gradient" >}}Schedule a Discovery Call{{< /button >}} +{.rowLinks .text-center .pt-4 .mt-1}🤖 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 31 - 33, Replace the raw CTA HTML block (the div with the anchor using href="/#") with the shared Hugo button shortcode and a real target URL; locate the duplicated anchor/button markup and swap it for the button shortcode invocation (using the site-approved shortcode name "button" or "buttonout") and set its href to the final discovery-call URL (not "/#"), preserving the visible label "Schedule a Discovery Call".content/sections/iac-sound-familiar.md (2)
10-10:⚠️ Potential issue | 🟡 MinorFix the section ID typo for long-term consistency.
Line 10 uses
iac-sound-familier(misspelled). Please standardize toiac-sound-familiarand update matching selector references in styling to keep IDs/selectors aligned.🤖 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, Fix the typo in the section ID: change the identifier string "iac-sound-familier" to "iac-sound-familiar" wherever it appears (e.g., the id field in content/sections/iac-sound-familiar.md and any selectors or references in CSS/JS that target "#iac-sound-familier"), and update matching selector references in styling or scripts so all selectors use the corrected "iac-sound-familiar" ID.
35-37:⚠️ Potential issue | 🟠 MajorUse the shared button shortcode and a real CTA destination.
Line 36 still uses raw anchor markup with
href="/#", which is a dead-end CTA and duplicates button HTML in content.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".🔧 Suggested change
-<div class="rowLinks justify-content-center pt-4"> - <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a> -</div> +{{< button "/contact/" "btn-gradient" >}}Schedule a Discovery Call{{< /button >}} +{.rowLinks .justify-content-center .pt-4}🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed. In `@content/sections/iac-sound-familiar.md` around lines 35 - 37, Replace the raw anchor block (<div class="rowLinks justify-content-center pt-4"> ... <a class="button btn-gradient" href="/#">Schedule a Discovery Call</a></div>) with the Hugo button shortcode (or buttonout for external links) and supply a real CTA destination URL; e.g., remove the duplicated HTML and use the shortcode syntax (button or buttonout) to render the styled button and set the actual link for the discovery call.
🤖 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/variables.scss`:
- Around line 17-31: The SCSS file violates
scss/dollar-variable-empty-line-before for $transition and $body-background; fix
by normalizing blank lines so each variable group follows the rule—add a single
empty line immediately before the $transition declaration and another single
empty line immediately before the $body-background declaration (so the variable
groups like $transition, the /* Colors */ block starting with
$default/$btn-color, and the final $body-background are separated consistently).
In `@content/sections/iac-pricing.md`:
- Line 16: Replace the H3 heading "### Pricing {.sectionTitle .big
.text-gradient .d-inline .pb-0}" with an H2 heading using "##" so the section
title becomes "## Pricing {.sectionTitle .big .text-gradient .d-inline .pb-0}",
ensuring consistent heading hierarchy and resolving MD001 warnings for the
Pricing section.
- Around line 23-24: The emphasized HTML contains literal escaped markdown
markers ("\*\*") that will render as visible asterisks; update the HTML fragment
"<b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b>" to
remove the escaped markers and present the phrase without the backslashes and
asterisks (e.g., "<b><em>No hidden costs. No surprises. No scope
creep.</em></b>") while keeping the surrounding emphasis and the "{.pt-4}" class
intact so rendering is correct.
In `@content/sections/iac-questions.md`:
- Around line 1-11: Add a top-level front matter property "draft: true" to this
section's YAML (alongside existing keys like title, weight, section_categories,
and id) so the in-progress FAQ page is hidden from production until content is
finalized; update the front matter block in the iac-questions.md file to include
draft: true.
In `@content/sections/iac-what-we-do.md`:
- Line 27: The section heading "What WE DO" is currently an H3 (###) and should
be promoted to H2 to maintain a valid document outline (avoid MD001); update the
heading markup for the line containing "### What WE DO {.sectionTitle .big
.text-center .text-pine}" to use two hashes (##) instead of three so the heading
becomes "## What WE DO {.sectionTitle .big .text-center .text-pine}".
- Around line 13-20: Three icon entries under the "icon" keys (the lines with
'<img src="/img/icon_infra_review.png"/>', '<img
src="/img/icon_team_interviews.png"/>', and '<img
src="/img/icon_workflow_assessement.png"/>') are missing alt attributes; update
each icon value to include an alt attribute—use alt="" for purely decorative
icons or a concise descriptive string (e.g., alt="Infrastructure review icon",
alt="Team interviews icon", alt="Workflow assessment icon") to match the
corresponding title values so screen readers get appropriate context.
---
Duplicate comments:
In `@content/sections/iac-questions.md`:
- Around line 16-26: The four FAQ entries (titles "What if we need help
implementing the recommendations?", "What size teams is this for?", "What IaC
tools do you support?", and "What if we're not ready to act on recommendations
immediately?") currently reuse the same placeholder answer; replace each
duplicate content string with a question-specific answer that explains next
steps and expectations: for "help implementing" describe offered implementation
support or handoff options and contact/process; for "team size" state
recommended team profiles or minimum/ideal team composition; for "IaC tools"
list supported IaC tools (e.g., Terraform, CloudFormation, Pulumi, ARM) and any
version/limitations; and for "not ready to act" explain deferral options,
retainer or phased engagement and how findings will be prioritized and
revisited. Ensure each content value is a concise, actionable sentence tailored
to its title.
In `@content/sections/iac-sound-familiar.md`:
- Line 10: Fix the typo in the section ID: change the identifier string
"iac-sound-familier" to "iac-sound-familiar" wherever it appears (e.g., the id
field in content/sections/iac-sound-familiar.md and any selectors or references
in CSS/JS that target "#iac-sound-familier"), and update matching selector
references in styling or scripts so all selectors use the corrected
"iac-sound-familiar" ID.
- Around line 35-37: Replace the raw anchor block (<div class="rowLinks
justify-content-center pt-4"> ... <a class="button btn-gradient"
href="/#">Schedule a Discovery Call</a></div>) with the Hugo button shortcode
(or buttonout for external links) and supply a real CTA destination URL; e.g.,
remove the duplicated HTML and use the shortcode syntax (button or buttonout) to
render the styled button and set the actual link for the discovery call.
In `@content/sections/iac-the-results.md`:
- Around line 31-32: Replace the raw anchor and fragile attribute block with the
shared Hugo button shortcode: remove the <a class="button btn-gradient"
href="/#">Schedule a Discovery Call</a> and the following {.pt-4 .mt-1} and
instead insert the button shortcode configured with the real destination URL and
label (use the site's canonical discovery or contact URL); ensure you use the
"button" shortcode name so styling and classes are applied consistently across
the site.
- Around line 13-20: Update the three platform tile icon strings that currently
use inline <img> tags for "Audit", "Innovate", and "Operate" to include proper
alt attributes (use alt="" for purely decorative icons or a short meaningful
description for informative images); specifically modify the icon values (the
lines containing the '<img src="/img/noun-developer-7187679.svg">', '<img
src="/img/noun-cycle-7222105.svg">', and '<img
src="/img/noun-reduction-7894266.svg">') to '<img src="..." alt="...">'
accordingly so each tile has appropriate alt semantics.
- Around line 29-68: Change the section heading "The Results" from H3 (###) to
H2 (##) and promote each subsection heading ("Save 1 FTE", "10x Faster
Operations", "Fewer Incidents", "Stronger Security & Compliance") from H4 (####)
to H3 (###) so the document uses a consistent `##` section + `###` subsection
hierarchy; update the heading markers in the lines containing those exact
titles.
In `@content/sections/iac-what-you-get.md`:
- Around line 13-23: The inline <img> tags used for the four cards (titles
"Findings Report", "Tailored Recommendations", "Lifetime Access to IaC Pattern
Library", and "1 Month of Expert Guidance") lack alt attributes; update each
icon tag to include an appropriate alt text (or alt="" if purely decorative) so
screen readers do not announce filenames—ensure the alt values are concise and
descriptive for contentful icons or empty for decorative icons.
- Around line 31-33: Replace the raw CTA HTML block (the div with the anchor
using href="/#") with the shared Hugo button shortcode and a real target URL;
locate the duplicated anchor/button markup and swap it for the button shortcode
invocation (using the site-approved shortcode name "button" or "buttonout") and
set its href to the final discovery-call URL (not "/#"), preserving the visible
label "Schedule a Discovery Call".
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: f320eac3-3ac5-47eb-85cf-b83752d41e0d
⛔ Files ignored due to path filters (9)
static/img/banner_iac_bg.pngis excluded by!**/*.pngstatic/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 (9)
assets/css/variables.scsscontent/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/audit.md
✅ Files skipped from review due to trivial changes (2)
- content/services/audit.md
- content/sections/iac-cta.md
| $transition: 0.25s; | ||
|
|
||
| /* Colors */ | ||
| $default: #333; | ||
| $light-grey: #555; | ||
| $btn-color: $default; | ||
| $facebook-blue: #3b5998; | ||
| $twitter-blue: #1DA1F2; | ||
| $highlight: #00A4A4; | ||
| $pine: #0E383A; | ||
| $rhythm: #7F7E97; | ||
| $twitter-blue: #1da1f2; | ||
| $highlight: #00a4a4; | ||
| $pine: #0e383a; | ||
| $rhythm: #7f7e97; | ||
| $vanilla: #ede497; | ||
| $pink: #d891ce; | ||
|
|
||
| $body-background: $pine; No newline at end of file | ||
| $body-background: $pine; |
There was a problem hiding this comment.
Resolve Stylelint variable-spacing violations.
Line 17 and Line 31 violate scss/dollar-variable-empty-line-before; this will keep style checks failing until normalized.
🔧 Suggested change
$max-width: 1250px;
-
$transition: 0.25s;
@@
$pink: `#d891ce`;
-
$body-background: $pine;🧰 Tools
🪛 Stylelint (17.5.0)
[error] 17-17: Unexpected empty line before $-variable (scss/dollar-variable-empty-line-before)
(scss/dollar-variable-empty-line-before)
[error] 31-31: Unexpected empty line before $-variable (scss/dollar-variable-empty-line-before)
(scss/dollar-variable-empty-line-before)
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@assets/css/variables.scss` around lines 17 - 31, The SCSS file violates
scss/dollar-variable-empty-line-before for $transition and $body-background; fix
by normalizing blank lines so each variable group follows the rule—add a single
empty line immediately before the $transition declaration and another single
empty line immediately before the $body-background declaration (so the variable
groups like $transition, the /* Colors */ block starting with
$default/$btn-color, and the final $body-background are separated consistently).
| <b><em>\*\*No hidden costs. No surprises. No scope creep.\*\*</em></b> | ||
| {.pt-4} |
There was a problem hiding this comment.
Remove escaped markdown markers from emphasized HTML text.
Line 23 currently includes literal \*\* inside HTML emphasis, which will likely render visible asterisks.
🔧 Suggested change
-<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> | |
| {.pt-4} | |
| <b><em>No hidden costs. No surprises. No scope creep.</em></b> | |
| {.pt-4} |
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-pricing.md` around lines 23 - 24, The emphasized HTML
contains literal escaped markdown markers ("\*\*") that will render as visible
asterisks; update the HTML fragment "<b><em>\*\*No hidden costs. No surprises.
No scope creep.\*\*</em></b>" to remove the escaped markers and present the
phrase without the backslashes and asterisks (e.g., "<b><em>No hidden costs. No
surprises. No scope creep.</em></b>") while keeping the surrounding emphasis and
the "{.pt-4}" class intact so rendering is correct.
| --- | ||
| title: Common Questions | ||
| weight: 6 | ||
| #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: | ||
| - iacaudit | ||
| id: iac-questions | ||
|
|
There was a problem hiding this comment.
Mark this section as draft until content is finalized.
Given the current placeholder FAQ state, this page appears in-progress but has no draft: true in front matter, so it can be published prematurely.
🛡️ Suggested front matter change
---
title: Common Questions
+draft: true
weight: 6As per coding guidelines, "Use front matter draft: true to hide in-progress content from production".
📝 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: Common Questions | |
| weight: 6 | |
| #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: | |
| - iacaudit | |
| id: iac-questions | |
| --- | |
| title: Common Questions | |
| draft: true | |
| weight: 6 | |
| `#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: | |
| - iacaudit | |
| id: iac-questions | |
🤖 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 1 - 11, Add a top-level front
matter property "draft: true" to this section's YAML (alongside existing keys
like title, weight, section_categories, and id) so the in-progress FAQ page is
hidden from production until content is finalized; update the front matter block
in the iac-questions.md file to include draft: true.
| - icon: '<img src="/img/icon_infra_review.png"/>' | ||
| title: "Infrastructure Review" | ||
| intro: "Code, automation, diagrams, and documentation" | ||
| - icon: '<img src="/img/icon_team_interviews.png"/>' | ||
| title: "Team Interviews" | ||
| intro: "Pain points, bottlenecks, hidden issues" | ||
| - icon: '<img src="/img/icon_workflow_assessement.png"/>' | ||
| title: "Workflow Assessment" |
There was a problem hiding this comment.
Add alt attributes for tile icon images.
Lines 13, 16, and 19 embed <img> without alt. Use alt="" for decorative icons or concise descriptive alt text if they carry unique meaning.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-what-we-do.md` around lines 13 - 20, Three icon entries
under the "icon" keys (the lines with '<img src="/img/icon_infra_review.png"/>',
'<img src="/img/icon_team_interviews.png"/>', and '<img
src="/img/icon_workflow_assessement.png"/>') are missing alt attributes; update
each icon value to include an alt attribute—use alt="" for purely decorative
icons or a concise descriptive string (e.g., alt="Infrastructure review icon",
alt="Team interviews icon", alt="Workflow assessment icon") to match the
corresponding title values so screen readers get appropriate context.
| <div class="row justify-content-center text-center"> | ||
| <div class="col col-12 col-md-10 col-lg-8"> | ||
|
|
||
| ### What WE DO {.sectionTitle .big .text-center .text-pine} |
There was a problem hiding this comment.
Adjust heading level to keep a valid outline.
Line 27 starts at H3; switch to H2 for the section-level heading to avoid MD001.
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.
In `@content/sections/iac-what-we-do.md` at line 27, The section heading "What WE
DO" is currently an H3 (###) and should be promoted to H2 to maintain a valid
document outline (avoid MD001); update the heading markup for the line
containing "### What WE DO {.sectionTitle .big .text-center .text-pine}" to use
two hashes (##) instead of three so the heading becomes "## What WE DO
{.sectionTitle .big .text-center .text-pine}".
There was a problem hiding this comment.
♻️ Duplicate comments (1)
content/sections/iac-questions.md (1)
1-11:⚠️ Potential issue | 🟠 MajorAdd
draft: trueto prevent premature publishing.Line 1-11 front matter still lacks
draft: true, so this in-progress section can ship to production.As per coding guidelines, "Use front matter draft: true to hide in-progress content from production".
🤖 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 1 - 11, The front-matter for the section (title: Common Questions, id: iac-questions) is missing the required draft flag; add a YAML key draft: true to the existing front-matter block (the top --- ... --- section) so the in-progress content is hidden from production and follows the "Use front matter draft: true" guideline.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.
Duplicate comments:
In `@content/sections/iac-questions.md`:
- Around line 1-11: The front-matter for the section (title: Common Questions,
id: iac-questions) is missing the required draft flag; add a YAML key draft:
true to the existing front-matter block (the top --- ... --- section) so the
in-progress content is hidden from production and follows the "Use front matter
draft: true" guideline.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Repository UI
Review profile: CHILL
Plan: Pro
Run ID: e6f763b3-89b1-483b-b0e3-281182ff75d7
📒 Files selected for processing (2)
content/sections/iac-questions.mdcontent/services/audit.md
✅ Files skipped from review due to trivial changes (1)
- content/services/audit.md
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Renames service section IDs for consistency, updates copy for Operate and Innovate services, and cleans up SCSS styling. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
|
@Gowiem couple of thoughts:
Maybe center the alignment? Or just move "AS CODE" slightly left to compensate for the diagonal shape of the "A" character? |
| #image: /img/bg_featured_video.jpg | ||
| section_categories: | ||
| - iacaudit | ||
| id: iac-sound-familier |
| #image: /img/bg_featured_video.jpg | ||
| section_categories: | ||
| - iacaudit | ||
| id: iac-sound-familier |
There was a problem hiding this comment.
| id: iac-sound-familier | |
| id: iac-sound-familiar |
| } | ||
| } | ||
|
|
||
| #iac-sound-familier { |
There was a problem hiding this comment.
| #iac-sound-familier { | |
| #iac-sound-familiar { |
| <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 |
|
|
||
| ### Common Questions {.sectionTitle .big .text-pine .text-center} | ||
|
|
||
| {{< accordian >}} |
There was a problem hiding this comment.
| {{< accordian >}} | |
| {{< accordion >}} |
@Xeboc funny that I kinda like it 😆 |
…e rename - Swap "Join Clients Like" heading below the descriptive paragraph so the label sits directly above the client logo carousel (Megan feedback) - Drop leading "and" from step #4 in the audit CTA list for consistent style - Fix "iac-sound-familier" typo → "iac-sound-familiar" in frontmatter + CSS - Rename accordian.html → accordion.html shortcode and update usage Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>







Summary
Bug fixes applied during reconciliation
rgba(255, 0255, 255, 0.1)→rgba(255, 255, 255, 0.1)in custom.scssand(max-width:→and (max-width:autoHeadingID: falsein config.yaml (would break blog anchor links)~render-heading.html/services/audit/(matching the service file's URL)Conflict resolutions
render-heading.htmlteam-training.mdconfig.yamlautoHeadingID: trueto protect blog anchor linksOutstanding items from PR #85 review
Test plan
/services/audit/Supersedes #85 and #93.
🤖 Generated with Claude Code
Summary by CodeRabbit
New Features
Style
Design