Skip to content

feat: visual upgrades cherry-picked from #4 redesign#5

Open
jeremylongshore wants to merge 2 commits intomainfrom
feat/visual-upgrade
Open

feat: visual upgrades cherry-picked from #4 redesign#5
jeremylongshore wants to merge 2 commits intomainfrom
feat/visual-upgrade

Conversation

@jeremylongshore
Copy link
Collaborator

@jeremylongshore jeremylongshore commented Mar 10, 2026

Summary

Cherry-picks the best visual elements from PR #4 while preserving all existing copy, CTAs, and Firebase infrastructure.

  • TrustBar: animated marquee with correct proof points (1,550+ stars, 270+ plugins, 1,537 agent skills)
  • ProjectShowcase: upgraded project grid replacing React Products component — gradient border hover effects, scroll-reveal animations, fully static Astro (no JS framework hydration)
  • FAQSection: accessible accordion with 6 real business FAQs, vanilla JS, keyboard-navigable

What was NOT brought over from #4

  • Generic copy ("AI Solutions That Transform Your Business")
  • Public pricing ($2,500/$7,500/$15,000 tiers)
  • Fake testimonials (Sarah Chen, Michael Rodriguez)
  • Firebase → Netlify migration
  • Outdated proof points (197 stars, 258 plugins)
  • SOC 2 / HIPAA compliance claims
  • CLAUDE.md rewrite
  • mailto: CTAs replacing discovery call booking

Page flow (new)

Hero → TrustBar → ClaudeCodeTiers → Learn/Colab/Accelerator → Also Available → ProjectShowcase → Contact → FAQ → Footer

Test plan

  • bun run build passes (verified locally)
  • TrustBar marquee animates, pauses on hover, fades at edges
  • FAQ accordion opens/closes smoothly, only one open at a time
  • ProjectShowcase cards reveal on scroll with stagger
  • All existing CTAs still point to discovery call booking link
  • Contact form still submits to Firebase Cloud Functions
  • Mobile responsive on all 3 new components

🤖 Generated with Claude Code

Summary by CodeRabbit

  • New Features

    • Added interactive FAQ section with accordion functionality to the home page.
    • Introduced project showcase grid with scroll-reveal animations and responsive layout.
    • Added trust bar displaying technologies and stats in a scrolling marquee.
    • Updated home page layout to integrate new components.
  • Documentation

    • Added Beads integration guide to AGENTS.md.
  • Chores

    • Updated database backend configuration.
    • Added git hook integrations.
    • Updated gitignore patterns for database and runtime artifacts.

jeremylongshore and others added 2 commits March 8, 2026 21:03
Cherry-picked visual improvements from PR #4 redesign while preserving
existing discovery-first copy, Firebase infrastructure, and booking CTAs.

- TrustBar: animated marquee with correct proof points (1,550+ stars, 270+ plugins, 1,537 skills)
- ProjectShowcase: upgraded project grid with gradient borders and scroll-reveal
- FAQSection: accessible accordion with real business FAQs
- Replaced React Products component with static Astro ProjectShowcase

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Copy link

@greptile-apps greptile-apps bot left a comment

Choose a reason for hiding this comment

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

Your free trial has ended. If you'd like to continue receiving code reviews, you can add a payment method here.

@qodo-code-review
Copy link

Review Summary by Qodo

Add visual upgrades with TrustBar, ProjectShowcase, and FAQ accordion components

✨ Enhancement

Grey Divider

Walkthroughs

Description
• Add three new visual components: TrustBar marquee, ProjectShowcase grid, FAQSection accordion
• Replace React Products component with static Astro ProjectShowcase featuring gradient borders and
  scroll-reveal animations
• Implement accessible accordion with 6 business FAQs, vanilla JS, keyboard navigation
• Initialize beads issue tracking system with Git hooks and Dolt backend integration
Diagram
flowchart LR
  Hero["Hero"] --> TrustBar["TrustBar<br/>Animated Marquee"]
  TrustBar --> Tiers["ClaudeCodeTiers"]
  Tiers --> Learn["Learn/Colab<br/>Section"]
  Learn --> Showcase["ProjectShowcase<br/>Replaces Products"]
  Showcase --> Contact["Contact"]
  Contact --> FAQ["FAQSection<br/>Accordion"]
  FAQ --> Footer["Footer"]
Loading

Grey Divider

File Changes

1. astro-site/src/components/home/TrustBar.astro ✨ Enhancement +166/-0

Animated marquee with proof points and tech badges

astro-site/src/components/home/TrustBar.astro


2. astro-site/src/components/home/ProjectShowcase.astro ✨ Enhancement +300/-0

Project grid with gradient borders and scroll-reveal

astro-site/src/components/home/ProjectShowcase.astro


3. astro-site/src/components/home/FAQSection.astro ✨ Enhancement +308/-0

Accessible accordion with 6 business FAQs and smooth animations

astro-site/src/components/home/FAQSection.astro


View more (9)
4. astro-site/src/pages/index.astro ✨ Enhancement +6/-2

Update page layout with new components, remove Products

astro-site/src/pages/index.astro


5. .beads/hooks/post-checkout ⚙️ Configuration changes +9/-0

Add beads Git hook for post-checkout automation

.beads/hooks/post-checkout


6. .beads/hooks/post-merge ⚙️ Configuration changes +9/-0

Add beads Git hook for post-merge automation

.beads/hooks/post-merge


7. .beads/hooks/pre-commit ⚙️ Configuration changes +9/-0

Add beads Git hook for pre-commit automation

.beads/hooks/pre-commit


8. .beads/hooks/pre-push ⚙️ Configuration changes +9/-0

Add beads Git hook for pre-push automation

.beads/hooks/pre-push


9. .beads/hooks/prepare-commit-msg ⚙️ Configuration changes +9/-0

Add beads Git hook for commit message preparation

.beads/hooks/prepare-commit-msg


10. .beads/metadata.json ⚙️ Configuration changes +5/-2

Configure beads backend to use Dolt database

.beads/metadata.json


11. AGENTS.md 📝 Documentation +113/-0

Document beads issue tracking workflow and session completion rules

AGENTS.md


12. .beads/interactions.jsonl Additional files +0/-0

...

.beads/interactions.jsonl


Grey Divider

Qodo Logo

@qodo-code-review
Copy link

qodo-code-review bot commented Mar 10, 2026

Code Review by Qodo

🐞 Bugs (2) 📘 Rule violations (0) 📎 Requirement gaps (0)

Grey Divider


Action required

1. Projects hidden without JS 🐞 Bug ⛯ Reliability
Description
ProjectShowcase.astro renders all project cards with CSS opacity: 0 and only makes them visible when
client-side JS adds the "revealed" class. If JS doesn’t run (blocked/error) or IntersectionObserver
is unavailable, the Projects section will appear empty.
Code

astro-site/src/components/home/ProjectShowcase.astro[R119-131]

+  /* Scroll-reveal initial state */
+  .project-card {
+    opacity: 0;
+    transform: translateY(20px);
+    transition:
+      opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
+      transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
+  }
+
+  .project-card.revealed {
+    opacity: 1;
+    transform: translateY(0);
+  }
Evidence
The CSS sets all .project-card elements to invisible by default, and the only code path that ever
makes them visible is a JS IntersectionObserver callback that adds the 'revealed' class. Without
that JS path, the section remains rendered-but-invisible.

astro-site/src/components/home/ProjectShowcase.astro[119-131]
astro-site/src/components/home/ProjectShowcase.astro[268-296]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
Project cards are invisible by default (`opacity: 0`) and only become visible if client-side JS successfully adds the `revealed` class. This creates an empty Projects section when JS is blocked/errors or when `IntersectionObserver` isn’t available.

### Issue Context
This section is intended to be “fully static Astro,” but it currently relies on JS for basic visibility.

### Fix Focus Areas
- astro-site/src/components/home/ProjectShowcase.astro[119-131]
- astro-site/src/components/home/ProjectShowcase.astro[268-300]

### Implementation direction (one acceptable approach)
1. Change CSS so `.project-card` is visible by default.
2. Gate the hidden/animated initial state behind a JS-present flag, e.g. add `document.documentElement.classList.add(&#x27;js&#x27;)` at the top of the script and use `:global(html.js) .project-card { opacity: 0; ... }`.
3. Add a fallback: if `!(&#x27;IntersectionObserver&#x27; in window)`, immediately add `revealed` to all cards.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools



Remediation recommended

2. FAQ answers require JS 🐞 Bug ⛯ Reliability
Description
FAQSection.astro renders every answer panel with the hidden attribute and relies on client-side JS
to remove it on interaction. If JS doesn’t run, none of the FAQ answers are accessible.
Code

astro-site/src/components/home/FAQSection.astro[R61-67]

+          <div
+            class="faq-panel"
+            id={`faq-panel-${index}`}
+            role="region"
+            aria-labelledby={`faq-btn-${index}`}
+            hidden
+          >
Evidence
All FAQ panels are server-rendered as hidden and CSS enforces display: none while hidden; the only
way they become visible is via JS removing the attribute during expand(). Without JS, the answers
stay non-rendered visually and inaccessible.

astro-site/src/components/home/FAQSection.astro[61-67]
astro-site/src/components/home/FAQSection.astro[184-191]
astro-site/src/components/home/FAQSection.astro[263-267]

Agent prompt
The issue below was found during a code review. Follow the provided context and guidance below and implement a solution

### Issue description
All FAQ answers are rendered with `hidden` and are therefore not readable if client-side JS does not run.

### Issue Context
The current accordion uses JS for expand/collapse and animates height transitions. This is fine as an enhancement, but content should remain accessible without JS.

### Fix Focus Areas
- astro-site/src/components/home/FAQSection.astro[61-67]
- astro-site/src/components/home/FAQSection.astro[184-191]
- astro-site/src/components/home/FAQSection.astro[231-308]

### Implementation direction (pick one)
**Option A (minimal):** Add a `&lt;noscript&gt;&lt;style&gt;...&lt;/style&gt;&lt;/noscript&gt;` block to force `.faq-panel` to display and remove height/transition constraints when JS is disabled.

**Option B (more semantic):** Convert each item to `&lt;details&gt;&lt;summary&gt;...&lt;/summary&gt;...&lt;/details&gt;` and layer the same styling/animation on top; keep JS only for “one open at a time” behavior.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools


Grey Divider

ⓘ The new review experience is currently in Beta. Learn more

Grey Divider

Qodo Logo

@coderabbitai
Copy link

coderabbitai bot commented Mar 10, 2026

📝 Walkthrough

Walkthrough

The PR introduces Beads/Dolt database integration with new git hooks, updates gitignore rules for Dolt artifacts and runtime files, adds comprehensive BEADS workflow documentation, and overhauls the homepage with three new interactive Astro components (FAQ accordion, project showcase grid, tech/stats marquee).

Changes

Cohort / File(s) Summary
Beads/Dolt Integration
.beads/.gitignore, .beads/metadata.json, .beads/hooks/{post-checkout,post-merge,pre-commit,pre-push,prepare-commit-msg}, .gitignore, AGENTS.md
Configures Dolt-backed Beads database, adds git hooks for Beads integration with v0.59.0 markers, expands ignore rules for Dolt artifacts and runtime state files, documents BEADS integration workflows and mandatory completion steps.
Homepage Components
astro-site/src/components/home/{FAQSection,ProjectShowcase,TrustBar}.astro
Introduces three new interactive homepage components: accordion-style FAQ section with expand/collapse behavior, project showcase grid with scroll-reveal animations, and marquee-style tech/stats bar with fade-out effects and hover pause.
Homepage Layout
astro-site/src/pages/index.astro
Integrates new components into homepage layout, replacing Products component with ProjectShowcase, adding TrustBar after Hero section, and appending FAQSection after Contact section.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~30 minutes

Possibly related PRs

Poem

🐰 Beads now dance with Dolt so fine,
Git hooks leap at commit time,
FAQs accordion, projects parade,
Trust bar scrolls in grand cascade,
Hopping through a homepage remade!

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately captures the main change: cherry-picking visual UI components (TrustBar, ProjectShowcase, FAQSection) from a redesign PR while preserving existing functionality.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Post copyable unit tests in a comment
  • Commit unit tests in branch feat/visual-upgrade

Tip

Try Coding Plans. Let us write the prompt for your AI agent so you can ship faster (with fewer bugs).
Share your feedback on Discord.


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.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@gemini-code-assist
Copy link

Summary of Changes

Hello, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request significantly enhances the landing page's visual appeal and user experience by introducing modern, interactive UI components. It also refines the project's backend infrastructure by migrating its internal database management to Dolt and formalizing an issue tracking workflow for AI agents. The changes focus on improving aesthetics and developer tooling without altering existing content, calls-to-action, or core Firebase infrastructure.

Highlights

  • Visual Component Integration: Integrated three new visual components: an animated 'TrustBar' marquee, an upgraded 'ProjectShowcase' grid with interactive effects, and an accessible 'FAQSection' accordion.
  • Astro-based Frontend Enhancements: The new visual components leverage Astro for static site generation, with vanilla JavaScript for interactive elements like scroll-reveal animations and keyboard-navigable accordions, avoiding heavy JS framework hydration.
  • Dolt Database Migration & Integration: The .beads directory configuration was updated to migrate from a SQLite-based database to Dolt, including new .gitignore rules and Git hooks for bd (beads) integration, emphasizing Dolt for issue tracking.
  • Issue Tracking Workflow Documentation: The AGENTS.md file was significantly expanded to detail a mandatory issue tracking workflow using bd (beads) with Dolt, outlining issue types, priorities, and agent-specific procedures.
Changelog
  • .beads/.gitignore
    • Updated ignored files to reflect migration to Dolt database management, including new runtime files and removing legacy SQLite and merge artifact patterns.
  • .beads/daemon.lock
    • Added a new file for daemon process management, likely related to the bd (beads) system.
  • .beads/hooks/post-checkout
    • Added a Git hook to run bd hooks run post-checkout after a checkout operation.
  • .beads/hooks/post-merge
    • Added a Git hook to run bd hooks run post-merge after a merge operation.
  • .beads/hooks/pre-commit
    • Added a Git hook to run bd hooks run pre-commit before a commit operation.
  • .beads/hooks/pre-push
    • Added a Git hook to run bd hooks run pre-push before a push operation.
  • .beads/hooks/prepare-commit-msg
    • Added a Git hook to run bd hooks run prepare-commit-msg before preparing a commit message.
  • .beads/metadata.json
    • Updated database configuration to use 'dolt' as the backend and specified a 'dolt_database' and 'project_id', indicating a migration from a file-based database to Dolt.
  • .gitignore
    • Added .dolt/ and *.db to the global .gitignore to exclude Dolt database files from version control.
  • AGENTS.md
    • Expanded documentation with a new section on 'Issue Tracking with bd (beads)', detailing its purpose, quick start commands, issue types, priorities, workflow for AI agents, auto-sync, and critical rules for task management.
  • astro-site/src/components/home/FAQSection.astro
    • Added a new Astro component for an accessible FAQ accordion section, featuring smooth expand/collapse animations and keyboard navigation.
  • astro-site/src/components/home/ProjectShowcase.astro
    • Added a new Astro component for a project showcase grid, including gradient border hover effects and scroll-reveal animations for project cards.
  • astro-site/src/components/home/TrustBar.astro
    • Added a new Astro component for an animated 'TrustBar' marquee, displaying technology items and statistical badges with fade masks.
  • astro-site/src/pages/index.astro
    • Updated the main landing page to import and integrate the new TrustBar, ProjectShowcase, and FAQSection components, replacing the older Products component.
Activity
  • The pull request was generated using Claude Code, indicating AI assistance in its creation.
  • The author verified that bun run build passes locally, ensuring the project builds successfully.
  • The author outlined a comprehensive test plan covering the functionality and visual aspects of the new components, including TrustBar animation, FAQ accordion behavior, ProjectShowcase scroll-reveal, CTA links, contact form submission, and mobile responsiveness.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for GitHub and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

@github-actions
Copy link

🔥 Firebase Preview deployed!

Preview URL: https://intent-landing-page--pr-5-jqrzq6a3.web.app

Comment on lines +119 to +131
/* Scroll-reveal initial state */
.project-card {
opacity: 0;
transform: translateY(20px);
transition:
opacity 0.5s cubic-bezier(0.4, 0, 0.2, 1),
transform 0.5s cubic-bezier(0.4, 0, 0.2, 1);
}

.project-card.revealed {
opacity: 1;
transform: translateY(0);
}

Choose a reason for hiding this comment

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

Action required

1. Projects hidden without js 🐞 Bug ⛯ Reliability

ProjectShowcase.astro renders all project cards with CSS opacity: 0 and only makes them visible when
client-side JS adds the "revealed" class. If JS doesn’t run (blocked/error) or IntersectionObserver
is unavailable, the Projects section will appear empty.
Agent Prompt
### Issue description
Project cards are invisible by default (`opacity: 0`) and only become visible if client-side JS successfully adds the `revealed` class. This creates an empty Projects section when JS is blocked/errors or when `IntersectionObserver` isn’t available.

### Issue Context
This section is intended to be “fully static Astro,” but it currently relies on JS for basic visibility.

### Fix Focus Areas
- astro-site/src/components/home/ProjectShowcase.astro[119-131]
- astro-site/src/components/home/ProjectShowcase.astro[268-300]

### Implementation direction (one acceptable approach)
1. Change CSS so `.project-card` is visible by default.
2. Gate the hidden/animated initial state behind a JS-present flag, e.g. add `document.documentElement.classList.add('js')` at the top of the script and use `:global(html.js) .project-card { opacity: 0; ... }`.
3. Add a fallback: if `!('IntersectionObserver' in window)`, immediately add `revealed` to all cards.

ⓘ Copy this prompt and use it to remediate the issue with your preferred AI generation tools

Copy link

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

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

Code Review

This pull request introduces several significant visual upgrades by adding new, well-implemented Astro components (TrustBar, ProjectShowcase, FAQSection) and also migrates the project's issue tracking to bd (beads) with Dolt. While the new frontend components are solid, the tooling migration has introduced a couple of issues. Most critically, a user-specific lock file has been committed, which needs to be removed and git-ignored. There is also some duplicated content in the AGENTS.md documentation that should be cleaned up.

Comment on lines +1 to +7
{
"pid": 225013,
"parent_pid": 224994,
"database": "/home/jeremy/000-projects/intent-solutions-landing/.beads/beads.db",
"version": "0.49.1",
"started_at": "2026-03-07T02:43:29.984012756Z"
}

Choose a reason for hiding this comment

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

critical

This file appears to be a runtime-generated lock file. It contains a user-specific absolute path (/home/jeremy/...) which should not be committed to version control. Committing local environment files can leak information and will cause the project to fail for other developers. Please remove this file from the repository and add daemon.lock to .beads/.gitignore to prevent it from being tracked in the future.

Comment on lines +127 to +151
## Landing the Plane (Session Completion)

**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.

**MANDATORY WORKFLOW:**

1. **File issues for remaining work** - Create issues for anything that needs follow-up
2. **Run quality gates** (if code changed) - Tests, linters, builds
3. **Update issue status** - Close finished work, update in-progress items
4. **PUSH TO REMOTE** - This is MANDATORY:
```bash
git pull --rebase
bd sync
git push
git status # MUST show "up to date with origin"
```
5. **Clean up** - Clear stashes, prune remote branches
6. **Verify** - All changes committed AND pushed
7. **Hand off** - Provide context for next session

**CRITICAL RULES:**
- Work is NOT complete until `git push` succeeds
- NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds

Choose a reason for hiding this comment

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

medium

The "Landing the Plane (Session Completion)" section is duplicated in this file. It appears once at lines 15-39 and is repeated here. To avoid confusion for developers and maintain a single source of truth, please consolidate these instructions by removing the redundant section.

Copy link

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

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

Actionable comments posted: 5

🧹 Nitpick comments (2)
.gitignore (1)

51-53: Scope the *.db ignore rule more narrowly.

*.db now hides every database file in the repo, so any intentional fixture or example DB will never appear in git status. Prefer ignoring only the specific Dolt/BEADS paths you actually generate.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.gitignore around lines 51 - 53, The current .gitignore entry '*.db' is too
broad; replace it with a scoped pattern that only ignores Dolt-generated DB
files (reference the existing '.dolt/' entry and the '*.db' pattern). Update the
ignore rule to target the Dolt directory or the specific Dolt/BEADS output paths
(e.g., files under .dolt/ or the exact subdirectory names your tooling
generates) so intentional example or fixture .db files elsewhere in the repo
remain visible to git.
.beads/.gitignore (1)

40-45: Verify the breadth of the *.db?* wildcard pattern.

The pattern *.db?* is broad and matches any file with .db followed by one or more characters (e.g., .dba, .db1, .dbx, .db_backup), not just SQLite artifacts like .db-wal, .db-shm, .db-journal. This may be intentional for safely ignoring all database-like files, but please confirm.

Additionally, lines 43-45 explicitly list *.db-journal, *.db-wal, and *.db-shm, which are already matched by *.db?*. While this redundancy improves clarity, you may optionally remove them to simplify the pattern list.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.beads/.gitignore around lines 40 - 45, The .gitignore entry '*.db?*' is
very broad and will match any file with .db plus extra chars; confirm whether
the intent is to ignore all database-like files or only SQLite artifacts; if you
only want SQLite artifacts narrow the pattern (e.g., use explicit patterns like
'*.db-wal', '*.db-shm', '*.db-journal' and remove or replace '*.db?*'),
otherwise keep the broad '*.db?*' and optionally remove the redundant explicit
entries '*.db-journal', '*.db-wal', and '*.db-shm' to simplify the list while
ensuring the intended files remain ignored.
🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In @.beads/.gitignore:
- Around line 1-51: The .beads/.gitignore in this diff (containing entries like
"dolt/", "redirect", ".local_version", "ephemeral.sqlite3", etc.) does not match
the PR description about UI component changes; either this file was accidentally
included or the PR description is wrong—remove .beads/.gitignore from this
changeset if it was added unintentionally (unstage/reset the file and amend the
commit / create a separate infra PR), or if the infra change is intentional,
update the PR title/description to explicitly mention the .beads/.gitignore and
Dolt/BEADS config changes so reviewers know the scope.
- Around line 1-3: Replace the broad dolt ignore entries with the specific
Dolt-recommended runtime patterns: remove the existing "dolt/" and
"dolt-access.lock" rules and instead add rules for ".dolt/noms/LOCK",
".dolt/noms/journal.idx", ".dolt/noms/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" (journal
files), ".dolt/noms/oldgen/", and "config.yaml" so the repository keeps Dolt
history while ignoring only transient runtime files; leave unrelated app files
like "dolt-server.*" and "dolt-monitor.pid" unchanged.

In `@AGENTS.md`:
- Around line 107-113: The "Auto-Sync" section currently gives competing sync
instructions (bd dolt push / bd dolt pull vs the required workflow); update this
section to document one canonical sync path: instruct contributors to run the
repo-required sequence "git pull --rebase" → "bd sync" → "git push" and remove
or reframe direct usage of "bd dolt push" / "bd dolt pull" (e.g., note they are
internal to bd and not part of the contributor workflow). Ensure the section
title "Auto-Sync" and mentions of "bd sync", "bd dolt push", "bd dolt pull",
"git pull --rebase", and "git push" are updated so only the canonical workflow
is presented as the required path.
- Around line 127-152: The "Landing the Plane (Session Completion)" section is
duplicated; remove one copy to resolve markdownlint MD024 by deleting the
redundant block containing the heading "Landing the Plane (Session Completion)"
and its MANDATORY WORKFLOW numbered list and CRITICAL RULES, keeping a single
authoritative instance; locate the duplicate by searching for the exact heading
text and ensure any internal references still point to the retained section,
then run markdownlint to confirm MD024 is resolved.

In `@astro-site/src/components/home/FAQSection.astro`:
- Around line 231-261: The setupFAQ function re-attaches click handlers on every
astro:page-load causing duplicate toggles; make setupFAQ idempotent by either
removing existing listeners before adding or short-circuiting if already
initialized: check and set a flag (e.g., data attribute on a parent or a
module-level boolean) or iterate triggers and call removeEventListener for the
same handler before adding; ensure you reference the same handler when removing
and keep usage of trigger elements, triggers NodeList, and the collapse/expand
functions unchanged.

---

Nitpick comments:
In @.beads/.gitignore:
- Around line 40-45: The .gitignore entry '*.db?*' is very broad and will match
any file with .db plus extra chars; confirm whether the intent is to ignore all
database-like files or only SQLite artifacts; if you only want SQLite artifacts
narrow the pattern (e.g., use explicit patterns like '*.db-wal', '*.db-shm',
'*.db-journal' and remove or replace '*.db?*'), otherwise keep the broad
'*.db?*' and optionally remove the redundant explicit entries '*.db-journal',
'*.db-wal', and '*.db-shm' to simplify the list while ensuring the intended
files remain ignored.

In @.gitignore:
- Around line 51-53: The current .gitignore entry '*.db' is too broad; replace
it with a scoped pattern that only ignores Dolt-generated DB files (reference
the existing '.dolt/' entry and the '*.db' pattern). Update the ignore rule to
target the Dolt directory or the specific Dolt/BEADS output paths (e.g., files
under .dolt/ or the exact subdirectory names your tooling generates) so
intentional example or fixture .db files elsewhere in the repo remain visible to
git.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 88aa41f4-44a9-4663-ad22-a0998ad8a77e

📥 Commits

Reviewing files that changed from the base of the PR and between 03455da and 15f0808.

⛔ Files ignored due to path filters (2)
  • .beads/daemon.lock is excluded by !**/*.lock
  • .beads/dolt-monitor.pid.lock is excluded by !**/*.lock
📒 Files selected for processing (14)
  • .beads/.gitignore
  • .beads/hooks/post-checkout
  • .beads/hooks/post-merge
  • .beads/hooks/pre-commit
  • .beads/hooks/pre-push
  • .beads/hooks/prepare-commit-msg
  • .beads/interactions.jsonl
  • .beads/metadata.json
  • .gitignore
  • AGENTS.md
  • astro-site/src/components/home/FAQSection.astro
  • astro-site/src/components/home/ProjectShowcase.astro
  • astro-site/src/components/home/TrustBar.astro
  • astro-site/src/pages/index.astro

Comment on lines +1 to +51
# Dolt database (managed by Dolt, not git)
dolt/
dolt-access.lock

# Daemon runtime files
daemon.lock
daemon.log
daemon.pid
# Runtime files
bd.sock
bd.sock.startlock
sync-state.json
last-touched

# Local version tracking (prevents upgrade notification spam after git ops)
.local_version

# Legacy database files
# Worktree redirect file (contains relative path to main repo's .beads/)
# Must not be committed as paths would be wrong in other clones
redirect

# Sync state (local-only, per-machine)
# These files are machine-specific and should not be shared across clones
.sync.lock
export-state/

# Ephemeral store (SQLite - wisps/molecules, intentionally not versioned)
ephemeral.sqlite3
ephemeral.sqlite3-journal
ephemeral.sqlite3-wal
ephemeral.sqlite3-shm

# Dolt server management (auto-started by bd)
dolt-server.pid
dolt-server.log
dolt-server.lock
dolt-server.port
dolt-server.activity
dolt-monitor.pid

# Backup data (auto-exported JSONL, local-only)
backup/

# Legacy files (from pre-Dolt versions)
*.db
*.db?*
*.db-journal
*.db-wal
*.db-shm
db.sqlite
bd.db

# Merge artifacts (temporary files from 3-way merge)
beads.base.jsonl
beads.base.meta.json
beads.left.jsonl
beads.left.meta.json
beads.right.jsonl
beads.right.meta.json

# Keep JSONL exports and config (source of truth for git)
!issues.jsonl
!metadata.json
!config.json
# NOTE: Do NOT add negation patterns here.
# They would override fork protection in .git/info/exclude.
# Config files (metadata.json, config.yaml) are tracked by git by default
# since no pattern above ignores them.
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Flag: Mismatch between PR objectives and file content.

The PR objectives describe visual component upgrades (TrustBar, ProjectShowcase, FAQSection) for a landing page, but this file contains Dolt database and BEADS tooling infrastructure configuration. Please verify that this file is part of the intended changeset for PR #5, or update the PR description to reflect the actual scope.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.beads/.gitignore around lines 1 - 51, The .beads/.gitignore in this diff
(containing entries like "dolt/", "redirect", ".local_version",
"ephemeral.sqlite3", etc.) does not match the PR description about UI component
changes; either this file was accidentally included or the PR description is
wrong—remove .beads/.gitignore from this changeset if it was added
unintentionally (unstage/reset the file and amend the commit / create a separate
infra PR), or if the infra change is intentional, update the PR
title/description to explicitly mention the .beads/.gitignore and Dolt/BEADS
config changes so reviewers know the scope.

Comment on lines +1 to +3
# Dolt database (managed by Dolt, not git)
dolt/
dolt-access.lock
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🔴 Critical

🧩 Analysis chain

🌐 Web query:

What runtime files and directories does DoltDB create that should be added to gitignore?

💡 Result:

If you’re using Git (the file VCS) in a folder that you also run Dolt in, the main runtime-generated artifacts you may want to ignore are:

  • .dolt/noms/LOCK (created while the DB is in use) [1]
  • .dolt/noms/journal.idx (optional index to speed loading the journal) [1]
  • .dolt/noms/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv (the “journal” file used for local updates) [1]
  • .dolt/noms/oldgen/ (created by dolt gc) [1]
  • config.yaml (auto-generated when you run dolt sql-server in a new directory) [2]

A practical .gitignore snippet:

# Dolt runtime artifacts (inside the Dolt data dir)
.dolt/noms/LOCK
.dolt/noms/journal.idx
.dolt/noms/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
.dolt/noms/oldgen/

# Dolt sql-server autogen config (if you don’t want it tracked)
config.yaml

Note: you typically should not ignore the entire .dolt/ directory unless you don’t want Dolt data/history in Git at all. [1]

Sources: [1] [2]


🏁 Script executed:

cat -n .beads/.gitignore

Repository: intent-solutions-io/intent-solutions-landing

Length of output: 1647


Align Dolt ignore patterns with official documentation.

The current patterns diverge from Dolt's official guidance. Dolt recommends NOT ignoring the entire .dolt/ directory; doing so discards version history. Instead, ignore only specific runtime files within .dolt/noms/:

  • .dolt/noms/LOCK (created while DB is in use)
  • .dolt/noms/journal.idx (optional journal index)
  • .dolt/noms/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv (journal file for local updates)
  • .dolt/noms/oldgen/ (created by dolt gc)
  • config.yaml (auto-generated by dolt sql-server)

Replace dolt/ and dolt-access.lock (line 2–3) with these specific patterns. Note: dolt-server.* and dolt-monitor.pid (lines 29–35) are custom application files unrelated to Dolt's official runtime artifacts.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In @.beads/.gitignore around lines 1 - 3, Replace the broad dolt ignore entries
with the specific Dolt-recommended runtime patterns: remove the existing "dolt/"
and "dolt-access.lock" rules and instead add rules for ".dolt/noms/LOCK",
".dolt/noms/journal.idx", ".dolt/noms/vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv" (journal
files), ".dolt/noms/oldgen/", and "config.yaml" so the repository keeps Dolt
history while ignoring only transient runtime files; leave unrelated app files
like "dolt-server.*" and "dolt-monitor.pid" unchanged.

Comment on lines +107 to +113
### Auto-Sync

bd automatically syncs via Dolt:

- Each write auto-commits to Dolt history
- Use `bd dolt push`/`bd dolt pull` for remote sync
- No manual export/import needed!
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Document one canonical sync path.

This section tells contributors to use bd dolt push/bd dolt pull, but the mandatory workflow below still requires bd sync. That leaves two competing sync instructions in the same file.

Based on learnings, the repo’s required landing workflow still uses git pull --rebasebd syncgit push, so this section should be aligned with that.

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 107 - 113, The "Auto-Sync" section currently gives
competing sync instructions (bd dolt push / bd dolt pull vs the required
workflow); update this section to document one canonical sync path: instruct
contributors to run the repo-required sequence "git pull --rebase" → "bd sync" →
"git push" and remove or reframe direct usage of "bd dolt push" / "bd dolt pull"
(e.g., note they are internal to bd and not part of the contributor workflow).
Ensure the section title "Auto-Sync" and mentions of "bd sync", "bd dolt push",
"bd dolt pull", "git pull --rebase", and "git push" are updated so only the
canonical workflow is presented as the required path.

Comment on lines +127 to +152
## Landing the Plane (Session Completion)

**When ending a work session**, you MUST complete ALL steps below. Work is NOT complete until `git push` succeeds.

**MANDATORY WORKFLOW:**

1. **File issues for remaining work** - Create issues for anything that needs follow-up
2. **Run quality gates** (if code changed) - Tests, linters, builds
3. **Update issue status** - Close finished work, update in-progress items
4. **PUSH TO REMOTE** - This is MANDATORY:
```bash
git pull --rebase
bd sync
git push
git status # MUST show "up to date with origin"
```
5. **Clean up** - Clear stashes, prune remote branches
6. **Verify** - All changes committed AND pushed
7. **Hand off** - Provide context for next session

**CRITICAL RULES:**
- Work is NOT complete until `git push` succeeds
- NEVER stop before pushing - that leaves work stranded locally
- NEVER say "ready to push when you are" - YOU must push
- If push fails, resolve and retry until it succeeds

Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Remove the duplicated “Landing the Plane” section.

Lines 127-152 repeat the earlier section from Lines 15-40, which is why markdownlint is reporting MD024. Keeping both copies will drift.

🧰 Tools
🪛 markdownlint-cli2 (0.21.0)

[warning] 127-127: Multiple headings with the same content

(MD024, no-duplicate-heading)

🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@AGENTS.md` around lines 127 - 152, The "Landing the Plane (Session
Completion)" section is duplicated; remove one copy to resolve markdownlint
MD024 by deleting the redundant block containing the heading "Landing the Plane
(Session Completion)" and its MANDATORY WORKFLOW numbered list and CRITICAL
RULES, keeping a single authoritative instance; locate the duplicate by
searching for the exact heading text and ensure any internal references still
point to the retained section, then run markdownlint to confirm MD024 is
resolved.

Comment on lines +231 to +261
<script>
// Smooth accordion with height animation
function setupFAQ() {
const triggers = document.querySelectorAll<HTMLButtonElement>('.faq-trigger');

triggers.forEach((trigger) => {
trigger.addEventListener('click', () => {
const isExpanded = trigger.getAttribute('aria-expanded') === 'true';
const panelId = trigger.getAttribute('aria-controls');
if (!panelId) return;
const panel = document.getElementById(panelId);
if (!panel) return;

if (isExpanded) {
// Collapse
collapse(trigger, panel);
} else {
// Close any currently open item first
triggers.forEach((otherTrigger) => {
if (otherTrigger !== trigger && otherTrigger.getAttribute('aria-expanded') === 'true') {
const otherId = otherTrigger.getAttribute('aria-controls');
if (!otherId) return;
const otherPanel = document.getElementById(otherId);
if (otherPanel) collapse(otherTrigger, otherPanel);
}
});
expand(trigger, panel);
}
});
});
}
Copy link

Choose a reason for hiding this comment

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

⚠️ Potential issue | 🟡 Minor

Potential duplicate event listeners on view transitions.

When astro:page-load fires (on every navigation in View Transitions), setupFAQ re-runs and attaches additional click handlers to the same triggers. This can cause the accordion to toggle multiple times per click.

Consider either removing old listeners or checking if already initialized:

🛠️ Proposed fix: guard against re-initialization
  function setupFAQ() {
    const triggers = document.querySelectorAll<HTMLButtonElement>('.faq-trigger');

    triggers.forEach((trigger) => {
+     // Skip if already initialized
+     if (trigger.dataset.faqInitialized) return;
+     trigger.dataset.faqInitialized = 'true';
+
      trigger.addEventListener('click', () => {
        // ... existing handler
      });
    });
  }
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@astro-site/src/components/home/FAQSection.astro` around lines 231 - 261, The
setupFAQ function re-attaches click handlers on every astro:page-load causing
duplicate toggles; make setupFAQ idempotent by either removing existing
listeners before adding or short-circuiting if already initialized: check and
set a flag (e.g., data attribute on a parent or a module-level boolean) or
iterate triggers and call removeEventListener for the same handler before
adding; ensure you reference the same handler when removing and keep usage of
trigger elements, triggers NodeList, and the collapse/expand functions
unchanged.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant