gspec 1.10.0 → 1.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. package/README.md +25 -34
  2. package/bin/gspec.js +762 -159
  3. package/commands/gspec.analyze.md +1 -1
  4. package/commands/gspec.architect.md +2 -2
  5. package/commands/gspec.feature.md +2 -2
  6. package/commands/gspec.implement.md +8 -6
  7. package/commands/gspec.migrate.md +13 -10
  8. package/commands/gspec.practices.md +2 -2
  9. package/commands/gspec.profile.md +2 -2
  10. package/commands/gspec.research.md +4 -4
  11. package/commands/gspec.stack.md +2 -2
  12. package/commands/gspec.style.md +2 -2
  13. package/dist/antigravity/gspec-analyze/SKILL.md +1 -1
  14. package/dist/antigravity/gspec-architect/SKILL.md +2 -2
  15. package/dist/antigravity/gspec-feature/SKILL.md +2 -2
  16. package/dist/antigravity/gspec-implement/SKILL.md +8 -6
  17. package/dist/antigravity/gspec-migrate/SKILL.md +13 -10
  18. package/dist/antigravity/gspec-practices/SKILL.md +2 -2
  19. package/dist/antigravity/gspec-profile/SKILL.md +2 -2
  20. package/dist/antigravity/gspec-research/SKILL.md +4 -4
  21. package/dist/antigravity/gspec-stack/SKILL.md +2 -2
  22. package/dist/antigravity/gspec-style/SKILL.md +2 -2
  23. package/dist/claude/gspec-analyze/SKILL.md +1 -1
  24. package/dist/claude/gspec-architect/SKILL.md +2 -2
  25. package/dist/claude/gspec-feature/SKILL.md +2 -2
  26. package/dist/claude/gspec-implement/SKILL.md +8 -6
  27. package/dist/claude/gspec-migrate/SKILL.md +13 -10
  28. package/dist/claude/gspec-practices/SKILL.md +2 -2
  29. package/dist/claude/gspec-profile/SKILL.md +2 -2
  30. package/dist/claude/gspec-research/SKILL.md +4 -4
  31. package/dist/claude/gspec-stack/SKILL.md +2 -2
  32. package/dist/claude/gspec-style/SKILL.md +2 -2
  33. package/dist/codex/gspec-analyze/SKILL.md +1 -1
  34. package/dist/codex/gspec-architect/SKILL.md +2 -2
  35. package/dist/codex/gspec-feature/SKILL.md +2 -2
  36. package/dist/codex/gspec-implement/SKILL.md +8 -6
  37. package/dist/codex/gspec-migrate/SKILL.md +13 -10
  38. package/dist/codex/gspec-practices/SKILL.md +2 -2
  39. package/dist/codex/gspec-profile/SKILL.md +2 -2
  40. package/dist/codex/gspec-research/SKILL.md +4 -4
  41. package/dist/codex/gspec-stack/SKILL.md +2 -2
  42. package/dist/codex/gspec-style/SKILL.md +2 -2
  43. package/dist/cursor/gspec-analyze.mdc +1 -1
  44. package/dist/cursor/gspec-architect.mdc +2 -2
  45. package/dist/cursor/gspec-feature.mdc +2 -2
  46. package/dist/cursor/gspec-implement.mdc +8 -6
  47. package/dist/cursor/gspec-migrate.mdc +13 -10
  48. package/dist/cursor/gspec-practices.mdc +2 -2
  49. package/dist/cursor/gspec-profile.mdc +2 -2
  50. package/dist/cursor/gspec-research.mdc +4 -4
  51. package/dist/cursor/gspec-stack.mdc +2 -2
  52. package/dist/cursor/gspec-style.mdc +2 -2
  53. package/dist/opencode/gspec-analyze/SKILL.md +1 -1
  54. package/dist/opencode/gspec-architect/SKILL.md +2 -2
  55. package/dist/opencode/gspec-feature/SKILL.md +2 -2
  56. package/dist/opencode/gspec-implement/SKILL.md +8 -6
  57. package/dist/opencode/gspec-migrate/SKILL.md +13 -10
  58. package/dist/opencode/gspec-practices/SKILL.md +2 -2
  59. package/dist/opencode/gspec-profile/SKILL.md +2 -2
  60. package/dist/opencode/gspec-research/SKILL.md +4 -4
  61. package/dist/opencode/gspec-stack/SKILL.md +2 -2
  62. package/dist/opencode/gspec-style/SKILL.md +2 -2
  63. package/package.json +1 -2
  64. package/templates/spec-sync.md +1 -1
  65. package/starters/features/about-page.md +0 -98
  66. package/starters/features/contact-form.md +0 -147
  67. package/starters/features/contact-page.md +0 -103
  68. package/starters/features/home-page.md +0 -103
  69. package/starters/features/responsive-navbar.md +0 -113
  70. package/starters/features/services-page.md +0 -103
  71. package/starters/features/site-footer.md +0 -121
  72. package/starters/features/theme-switcher.md +0 -124
  73. package/starters/practices/tdd-pipeline-first.md +0 -192
  74. package/starters/stacks/astro-tailwind-github-pages.md +0 -283
  75. package/starters/stacks/nextjs-supabase-vercel.md +0 -319
  76. package/starters/stacks/nextjs-vercel-typescript.md +0 -264
  77. package/starters/styles/clean-professional.md +0 -316
  78. package/starters/styles/dark-minimal-developer.md +0 -442
@@ -1,103 +0,0 @@
1
- ---
2
- gspec-version: 1.8.0
3
- description: Contact page layout with form, location map, and business info
4
- ---
5
-
6
- # Contact Page
7
-
8
- ## Overview
9
-
10
- A static Contact page that displays the business's contact information so visitors can easily find how to get in touch. Without a clear, dedicated contact page, prospective clients may leave the site rather than search for scattered contact details — making this a critical conversion-support page.
11
-
12
- ## Users & Use Cases
13
-
14
- **Primary users:** Prospective clients ready to reach out to the business.
15
-
16
- **Key use cases:**
17
-
18
- 1. A prospective client has reviewed the services and about page and is now ready to make contact — they navigate to the Contact page to find an email address or phone number.
19
- 2. A visitor needs the business's physical address to visit in person or send correspondence.
20
- 3. A returning client needs to quickly look up the business's phone number or email without digging through old communications.
21
-
22
- ## Scope
23
-
24
- **In scope:**
25
-
26
- - Display of core contact details: email address, phone number, and physical address
27
- - Clear, scannable layout that makes each contact method immediately visible
28
- - Responsive layout that works across desktop, tablet, and mobile devices
29
- - Static content coded directly into the page
30
-
31
- **Out of scope:**
32
-
33
- - Contact form or message submission functionality (separate feature)
34
- - Embedded map or location visualization
35
- - Live chat, chatbot, or real-time messaging
36
- - Social media links or feeds
37
- - Business hours display
38
- - CMS-managed or dynamically loaded content
39
-
40
- **Deferred ideas:**
41
-
42
- - Embedded interactive map showing the business location
43
- - Business hours section
44
- - Social media profile links
45
- - Multiple office or branch locations
46
-
47
- ## Capabilities
48
-
49
- - [ ] **P0**: Page displays the business email address
50
- - Email address is visible without scrolling on desktop viewports
51
- - Email is rendered as a clickable `mailto:` link that opens the visitor's default email client
52
- - Email address is displayed as readable text (not hidden behind an icon or "Email Us" label alone)
53
-
54
- - [ ] **P0**: Page displays the business phone number
55
- - Phone number is visible and formatted for readability
56
- - Phone number is rendered as a clickable `tel:` link that initiates a call on mobile devices
57
- - Phone number is displayed as readable text
58
-
59
- - [ ] **P0**: Page displays the business physical address
60
- - Full mailing address is displayed in a standard, readable format
61
- - Address is presented as plain text (not solely as an image)
62
-
63
- - [ ] **P0**: Page is fully responsive across common device sizes
64
- - Layout adapts cleanly to desktop (1024px+), tablet (768px), and mobile (375px) viewports
65
- - No horizontal scrolling on any viewport
66
- - Contact details remain legible and tappable at all sizes
67
-
68
- - [ ] **P1**: Contact details are scannable and visually organized
69
- - Each contact method (email, phone, address) is visually distinct and separated
70
- - A visitor can identify all available contact methods within 5 seconds of viewing the page
71
- - Clear labels or headings distinguish each contact method
72
-
73
- - [ ] **P2**: Semantic page structure supports accessibility
74
- - Page uses proper heading hierarchy (single h1, logical h2/h3 nesting)
75
- - Interactive elements (links) are keyboard-navigable and have accessible labels
76
- - Sufficient color contrast for all text elements
77
-
78
- ## Dependencies
79
-
80
- - **Home Page** ([home-page.md](home-page.md)): The Contact page is a secondary page that visitors typically navigate to from the home page. Navigation between pages should be consistent.
81
-
82
- ## Assumptions & Risks
83
-
84
- **Assumptions:**
85
-
86
- - The business has a single set of contact details (one email, one phone number, one address) to display.
87
- - Contact information is stable and changes infrequently; developer-managed updates are acceptable.
88
- - Static content is acceptable for the initial version.
89
-
90
- **Key risks:**
91
-
92
- - **Content readiness:** The page requires finalized contact details before launch. Mitigation: use realistic placeholder content during development so layout and structure can be validated independently.
93
- - **Spam exposure:** Displaying email addresses and phone numbers as plain text exposes them to automated scraping. Mitigation: accept this tradeoff for usability in the initial version; obfuscation techniques can be added later if spam becomes a problem.
94
-
95
- ## Success Metrics
96
-
97
- 1. Visitors can identify at least one contact method (email, phone, or address) within 5 seconds of viewing the page.
98
- 2. The page renders correctly and is fully usable across desktop, tablet, and mobile viewports.
99
- 3. All clickable contact methods (`mailto:` and `tel:` links) function correctly on their respective devices.
100
-
101
- ## Implementation Context
102
-
103
- > This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.
@@ -1,103 +0,0 @@
1
- ---
2
- gspec-version: 1.8.0
3
- description: Hero section, service highlights, testimonials, and CTA
4
- ---
5
-
6
- # Home Page
7
-
8
- ## Overview
9
-
10
- A home page for a professional services business that introduces the brand, communicates its value proposition, and presents its service offerings. The page serves as the primary entry point for prospective clients researching the business, giving them enough information to understand what the firm does and why it is credible.
11
-
12
- ## Users & Use Cases
13
-
14
- **Primary users:** Prospective clients visiting the website for the first time.
15
-
16
- **Key use cases:**
17
-
18
- 1. A prospective client arrives from a search engine and needs to quickly understand what the business does and whether it is relevant to their needs.
19
- 2. A referral visits the site to validate the recommendation they received, looking for professionalism and evidence of expertise.
20
- 3. A returning visitor navigates back to the home page to review service offerings before engaging further.
21
-
22
- ## Scope
23
-
24
- **In scope:**
25
-
26
- - Hero banner section with headline, supporting text, and optional imagery
27
- - Value proposition section summarizing the firm's core differentiators
28
- - Services overview section listing the primary service offerings with brief descriptions
29
- - Responsive layout that works across desktop, tablet, and mobile devices
30
- - Static content coded directly into the page
31
-
32
- **Out of scope:**
33
-
34
- - Calls-to-action, buttons, or conversion flows (handled by a separate feature)
35
- - Blog, news, or dynamic content feeds
36
- - Client portal or authenticated experiences
37
- - Search engine optimization tooling or analytics integration
38
-
39
- **Deferred ideas:**
40
-
41
- - Testimonials or social proof section
42
- - Team or leadership section
43
- - Partner or client logo bar
44
- - Animation or scroll-based interactions
45
-
46
- ## Capabilities
47
-
48
- - [ ] **P0**: Hero banner displays a prominent headline and supporting text that communicates what the business does
49
- - Headline and supporting text are visible immediately on page load without scrolling
50
- - Text is legible across viewport sizes (desktop, tablet, mobile)
51
- - Section accommodates an optional background image or visual element
52
-
53
- - [ ] **P0**: Value proposition section presents 2-4 core differentiators of the business
54
- - Each differentiator has a short title and brief description
55
- - Differentiators are visually distinct and scannable (not a wall of text)
56
- - Section is visually separated from the hero and services sections
57
-
58
- - [ ] **P0**: Services overview section lists the primary service offerings
59
- - Each service has a name and a brief description (1-3 sentences)
60
- - Services are presented in a consistent, repeatable layout pattern
61
- - The section accommodates 3-6 service items without feeling cluttered
62
-
63
- - [ ] **P0**: Page is fully responsive across common device sizes
64
- - Layout adapts cleanly to desktop (1024px+), tablet (768px), and mobile (375px) viewports
65
- - No horizontal scrolling on any viewport
66
- - Text remains readable and images scale appropriately at all sizes
67
-
68
- - [ ] **P1**: Page loads quickly with static content
69
- - Page is usable within 2 seconds on a standard broadband connection
70
- - Images are appropriately sized and optimized for web delivery
71
-
72
- - [ ] **P2**: Semantic page structure supports accessibility
73
- - Page uses proper heading hierarchy (single h1, logical h2/h3 nesting)
74
- - Images include descriptive alt text
75
- - Content is navigable via keyboard
76
-
77
- ## Dependencies
78
-
79
- None. This is a foundational page with no dependencies on other features.
80
-
81
- ## Assumptions & Risks
82
-
83
- **Assumptions:**
84
-
85
- - The business has established branding (name, logo, colors) available for use.
86
- - Service offerings are defined and can be summarized in 1-3 sentences each.
87
- - Static content is acceptable for the initial version; content updates will be infrequent and handled by developers.
88
-
89
- **Key risks:**
90
-
91
- - **Content readiness:** The page cannot launch without finalized copy for the hero, value proposition, and services sections. Mitigation: use realistic placeholder content during development so layout and structure can be validated independently.
92
- - **Scope creep into conversion flows:** Without clear CTAs, stakeholders may push to add contact forms or booking widgets to this feature. Mitigation: CTA functionality is explicitly scoped to a separate feature.
93
-
94
- ## Success Metrics
95
-
96
- 1. Visitors can identify the business name, what it does, and its core services within 10 seconds of landing on the page.
97
- 2. The page renders correctly and is fully usable across desktop, tablet, and mobile viewports.
98
- 3. Page load time is under 2 seconds on a standard broadband connection.
99
- 4. All content sections (hero, value proposition, services) are present and display without layout issues.
100
-
101
- ## Implementation Context
102
-
103
- > This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.
@@ -1,113 +0,0 @@
1
- ---
2
- gspec-version: 1.8.0
3
- description: Responsive navigation bar with mobile hamburger menu
4
- ---
5
-
6
- # Responsive Navbar
7
-
8
- ## Overview
9
-
10
- A persistent, top-of-viewport navigation bar that anchors the site identity on the left and presents navigation destinations on the right, adapting its layout across viewport sizes. Without a consistent navigation element, visitors must rely on back buttons or memorized URLs to move between pages — increasing friction and reducing discoverability of key sections.
11
-
12
- ## Users & Use Cases
13
-
14
- **Primary users:** All site visitors navigating between pages.
15
-
16
- **Key use cases:**
17
-
18
- 1. A first-time visitor lands on any page and uses the navbar to discover and navigate to other sections of the site without scrolling back to the top or returning to the home page.
19
- 2. A visitor on a mobile device taps the hamburger menu to access the full set of navigation destinations that would otherwise not fit in the narrow viewport.
20
- 3. A visitor on any page clicks the site identity (icon/name) in the navbar to return to the home page as a familiar orientation point.
21
- 4. A visitor scrolls down a long page and uses the pinned navbar to navigate elsewhere without scrolling back to the top.
22
-
23
- ## Scope
24
-
25
- **In scope:**
26
-
27
- - Site identity element (icon and/or name) pinned to the left side of the navbar, functioning as a home link
28
- - Horizontal navigation links displayed on the right side at wider viewports
29
- - Hamburger menu trigger that replaces the horizontal links at narrow viewports, revealing a flat list of all navigation destinations
30
- - Sticky positioning so the navbar remains visible during scrolling
31
- - Responsive transition between expanded links and collapsed hamburger menu
32
-
33
- **Out of scope:**
34
-
35
- - Context-aware action slots (edit/view toggles, page-specific controls) — handled by individual page features
36
- - Nested or multi-level dropdown menus within the hamburger
37
- - Search bar or search functionality within the navbar
38
- - User account controls, login/logout, or authentication-related UI
39
- - Notification badges or indicators
40
- - Breadcrumb navigation
41
-
42
- **Deferred ideas:**
43
-
44
- - Animated transitions for hamburger menu open/close
45
- - Active state highlighting for the current page's link
46
- - Dropdown sub-menus for grouped navigation at desktop widths
47
- - Secondary navbar or sub-navigation bar below the primary navbar
48
-
49
- ## Capabilities
50
-
51
- - [ ] **P0**: Site identity element is displayed on the left side of the navbar and links to the home page
52
- - An icon, name, or combination of both is visible on the left edge of the navbar at all viewport sizes
53
- - Clicking or tapping the identity element navigates to the home page
54
- - The identity element has an accessible label describing its purpose as a home link
55
-
56
- - [ ] **P0**: Navigation destinations are displayed as horizontal links on the right side at wide viewports
57
- - All defined navigation destinations are visible as individual, clickable links
58
- - Links are displayed in a consistent, stable order
59
- - Each link navigates to the correct destination page
60
-
61
- - [ ] **P0**: Navigation destinations collapse into a hamburger menu at narrow viewports
62
- - A recognizable hamburger icon (three horizontal lines or equivalent) replaces the horizontal links below a defined breakpoint
63
- - Tapping the hamburger icon reveals a flat list of all navigation destinations
64
- - Tapping a destination in the list navigates to that page
65
- - Tapping the hamburger icon again or navigating away closes the menu
66
-
67
- - [ ] **P0**: Navbar remains pinned to the top of the viewport during scrolling
68
- - The navbar stays visible at the top of the screen as the user scrolls down the page
69
- - Page content scrolls beneath the navbar without overlapping or obscuring it
70
- - The navbar does not cause content at the top of the page to be hidden behind it on initial load
71
-
72
- - [ ] **P0**: Navbar is fully responsive across common device sizes
73
- - Layout adapts cleanly to desktop (1024px+), tablet (768px), and mobile (375px) viewports
74
- - The site identity element remains visible and legible at all sizes
75
- - No horizontal scrolling is introduced by the navbar at any viewport width
76
-
77
- - [ ] **P1**: Hamburger menu is accessible to keyboard and screen reader users
78
- - The hamburger trigger is keyboard-focusable and activatable via Enter or Space
79
- - The expanded menu can be navigated with keyboard (Tab, Escape to close)
80
- - The trigger has an accessible label (e.g., "Navigation menu") that communicates its purpose
81
- - Screen readers announce the expanded/collapsed state of the menu
82
-
83
- - [ ] **P2**: Navigation destination order remains stable across viewport transitions
84
- - The sequence of links in the expanded horizontal layout matches the sequence in the hamburger menu
85
- - Resizing the viewport does not reorder or drop navigation destinations
86
-
87
- ## Dependencies
88
-
89
- - **Home Page** ([home-page.md](home-page.md)): The site identity element links to the home page; the home page must exist as a navigation destination.
90
-
91
- ## Assumptions & Risks
92
-
93
- **Assumptions:**
94
-
95
- - The site has a defined identity (icon, name, or both) available for use in the navbar.
96
- - Navigation destinations are statically defined and change infrequently; developer-managed updates are acceptable.
97
- - The number of navigation destinations is small enough (3-6 items) that a flat list in the hamburger menu is sufficient without grouping or nesting.
98
-
99
- **Key risks:**
100
-
101
- - **Content overflow at medium viewports:** If the number of navigation links grows, the horizontal layout may overflow before reaching the narrow-viewport breakpoint. Mitigation: define the responsive breakpoint based on content width rather than a fixed pixel value, or set a maximum number of supported links in the horizontal layout.
102
- - **Sticky positioning conflicts:** The pinned navbar may conflict with other fixed or sticky elements on the page (e.g., cookie banners, chat widgets). Mitigation: establish a clear stacking order convention so the navbar's layer priority is predictable.
103
-
104
- ## Success Metrics
105
-
106
- 1. Visitors can navigate to any primary page from any other page using the navbar without scrolling to the top of the page.
107
- 2. The navbar renders correctly with site identity visible and links accessible across desktop, tablet, and mobile viewports.
108
- 3. On narrow viewports, the hamburger menu reveals all navigation destinations and each link functions correctly.
109
- 4. The navbar remains visible and functional during page scroll on all supported viewport sizes.
110
-
111
- ## Implementation Context
112
-
113
- > This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.
@@ -1,103 +0,0 @@
1
- ---
2
- gspec-version: 1.8.0
3
- description: Service offerings with descriptions, icons, and pricing tiers
4
- ---
5
-
6
- # Services Page
7
-
8
- ## Overview
9
-
10
- A dedicated Services page that presents the business's service offerings in detail beyond the brief overview on the home page. Prospective clients who are evaluating whether the business can meet their specific needs require more than a one-line summary — this page gives each service enough space to communicate what it involves and why it matters, helping visitors self-qualify before making contact.
11
-
12
- ## Users & Use Cases
13
-
14
- **Primary users:** Prospective clients evaluating the business's service offerings in detail.
15
-
16
- **Key use cases:**
17
-
18
- 1. A prospective client clicks through from the home page services overview to understand a specific service in more depth before deciding to reach out.
19
- 2. A visitor comparing multiple firms reviews the Services page to assess breadth and relevance of offerings against their needs.
20
- 3. A referral who was told the business handles a specific type of work visits the Services page to confirm that service is offered and understand what it entails.
21
-
22
- ## Scope
23
-
24
- **In scope:**
25
-
26
- - Individual section for each service with a heading and short descriptive paragraph (3-5 sentences)
27
- - Introductory text at the top of the page framing the overall service offering
28
- - Support for 3-6 service items
29
- - Responsive layout that works across desktop, tablet, and mobile devices
30
- - Static content coded directly into the page
31
-
32
- **Out of scope:**
33
-
34
- - Pricing, rates, or cost information
35
- - Calls-to-action, contact forms, or conversion elements (handled by a separate feature)
36
- - Individual dedicated pages per service
37
- - Case studies, project examples, or portfolio items tied to services
38
- - Dynamic or CMS-managed content
39
- - Filtering, search, or categorization of services
40
-
41
- **Deferred ideas:**
42
-
43
- - Individual service detail pages linked from each service section
44
- - Icons or illustrations accompanying each service
45
- - Client testimonials or case studies associated with specific services
46
- - Service comparison table or feature matrix
47
- - FAQ section addressing common questions about the services
48
-
49
- ## Capabilities
50
-
51
- - [ ] **P0**: Page displays an introductory section framing the overall service offering
52
- - Section includes a heading and a brief paragraph (1-3 sentences) that sets context for the services listed below
53
- - Introductory text is visible immediately on page load without scrolling on desktop viewports
54
- - Section is visually distinct from the individual service sections
55
-
56
- - [ ] **P0**: Each service is presented with a heading and descriptive paragraph
57
- - Each service has a clear, distinct heading (service name)
58
- - Each service includes a descriptive paragraph of 3-5 sentences explaining what the service involves and the value it provides
59
- - Services are presented in a consistent, repeatable layout pattern
60
- - The page accommodates 3-6 services without feeling cluttered or requiring excessive scrolling
61
-
62
- - [ ] **P0**: Page is fully responsive across common device sizes
63
- - Layout adapts cleanly to desktop (1024px+), tablet (768px), and mobile (375px) viewports
64
- - No horizontal scrolling on any viewport
65
- - Text remains readable and sections are well-spaced at all sizes
66
-
67
- - [ ] **P1**: Services are visually scannable and well-structured
68
- - A visitor can identify all available services by name within 10 seconds of viewing the page
69
- - Each service section is visually separated from adjacent sections with adequate spacing
70
- - Clear visual hierarchy distinguishes service headings from descriptive text
71
-
72
- - [ ] **P2**: Semantic page structure supports accessibility
73
- - Page uses proper heading hierarchy (single h1, logical h2/h3 nesting)
74
- - Content is navigable via keyboard
75
- - Sufficient color contrast for all text elements
76
-
77
- ## Dependencies
78
-
79
- - **Home Page** ([home-page.md](home-page.md)): The home page includes a services overview section. The Services page expands on that overview. Navigation between pages should be consistent, and the home page services section should link to this page for visitors wanting more detail.
80
-
81
- ## Assumptions & Risks
82
-
83
- **Assumptions:**
84
-
85
- - The business has 3-6 defined service offerings that can each be described in 3-5 sentences.
86
- - Service offerings are stable and change infrequently; developer-managed updates are acceptable.
87
- - The brief home page services overview is sufficient as a summary, and this page serves as the next level of detail without needing individual service pages.
88
-
89
- **Key risks:**
90
-
91
- - **Content readiness:** Each service requires a descriptive paragraph beyond what the home page provides. Mitigation: use realistic placeholder content during development so layout and structure can be validated independently.
92
- - **Redundancy with home page:** Visitors may feel the Services page duplicates the home page overview if the additional detail is not meaningfully different. Mitigation: ensure the home page overview uses shorter summaries (1-2 sentences) while this page provides fuller descriptions (3-5 sentences) with distinct value-oriented content.
93
-
94
- ## Success Metrics
95
-
96
- 1. Visitors can identify all available services by name within 10 seconds of viewing the page.
97
- 2. Each service description provides enough detail that a visitor can determine whether the service is relevant to their needs without contacting the business.
98
- 3. The page renders correctly and is fully usable across desktop, tablet, and mobile viewports.
99
- 4. All service sections display in a consistent layout without visual issues or excessive whitespace.
100
-
101
- ## Implementation Context
102
-
103
- > This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.
@@ -1,121 +0,0 @@
1
- ---
2
- gspec-version: 1.8.0
3
- description: Site footer with nav links, social icons, and copyright
4
- ---
5
-
6
- # Site Footer
7
-
8
- ## Overview
9
-
10
- A standard informational footer rendered at the bottom of every page, providing consistent brand identity, copyright information, and site-wide navigation and legal links. Without a persistent footer, visitors lack a reliable anchor for finding key links and verifying they are on a legitimate, professional site — reducing trust and increasing navigation friction.
11
-
12
- ## Users & Use Cases
13
-
14
- **Primary users:** All site visitors, regardless of their entry point or intent.
15
-
16
- **Key use cases:**
17
-
18
- 1. A visitor reaches the bottom of any page and wants to navigate to another section of the site without scrolling back to the top — the footer provides quick links to key pages.
19
- 2. A visitor wants to review legal or policy information (privacy policy, terms of use) and looks to the footer as the conventional location for these links.
20
- 3. A first-time visitor glances at the footer to confirm the business identity, read a brief description, and see a copyright notice — reinforcing legitimacy and professionalism.
21
-
22
- ## Scope
23
-
24
- **In scope:**
25
-
26
- - Business identity display (name and short tagline or description)
27
- - Copyright notice with current year
28
- - Navigation links to main site pages
29
- - Legal and support links (privacy policy, terms of use, accessibility)
30
- - Consistent rendering across all pages
31
- - Responsive layout across device sizes
32
-
33
- **Out of scope:**
34
-
35
- - Contact forms, email signup forms, or interactive input elements
36
- - Embedded maps or dynamic content
37
- - Page-specific content or messaging that varies by page
38
- - CMS or admin interface for managing footer content
39
-
40
- **Deferred ideas:**
41
-
42
- - Social media profile icon links
43
- - Certification badges or trust seals
44
- - Micro-CTA buttons (e.g., "Get a Quote")
45
- - Newsletter signup field
46
- - Secondary tagline or seasonal messaging
47
-
48
- ## Capabilities
49
-
50
- - [ ] **P0**: Footer displays the business name and a short tagline or description
51
- - Business name is visible and prominent within the footer
52
- - A brief tagline or description (1 sentence) accompanies the name
53
- - Identity text is legible at all viewport sizes
54
-
55
- - [ ] **P0**: Footer displays a copyright notice
56
- - Copyright notice includes the current year and business name
57
- - Notice is positioned in a conventional footer location (typically bottom of the footer)
58
- - Text is legible but visually secondary to navigation and identity content
59
-
60
- - [ ] **P0**: Footer includes navigation links to main site pages
61
- - Links to all primary site pages (Home, About, Contact) are present
62
- - Links are clearly labeled with readable text
63
- - Each link navigates to the correct page when activated
64
-
65
- - [ ] **P0**: Footer includes legal and support links
66
- - Links for privacy policy, terms of use, and accessibility statement are present
67
- - Legal links are visually grouped or separated from main navigation links to indicate their distinct purpose
68
- - Each link navigates to the correct destination when activated
69
-
70
- - [ ] **P0**: Footer renders consistently on every page
71
- - The footer appears at the bottom of the page content on all site pages
72
- - Footer content and layout are identical regardless of which page the visitor is on
73
- - Footer does not overlap or interfere with page-specific content or sticky navigation elements
74
-
75
- - [ ] **P0**: Footer is fully responsive across common device sizes
76
- - Layout adapts cleanly to desktop (1024px+), tablet (768px), and mobile (375px) viewports
77
- - No horizontal scrolling caused by the footer on any viewport
78
- - Links remain legible and tappable (adequate touch target size) on mobile devices
79
-
80
- - [ ] **P1**: Footer content is organized with clear visual hierarchy
81
- - Business identity, navigation links, legal links, and copyright are visually distinct sections or groups
82
- - A visitor can distinguish between navigation and legal links without reading every label
83
- - Layout uses spacing and grouping to prevent the footer from feeling cluttered
84
-
85
- - [ ] **P2**: Footer structure supports accessibility
86
- - Footer uses a semantic landmark element so assistive technologies can identify it
87
- - All links are keyboard-navigable and have accessible labels
88
- - Sufficient color contrast for all text and link elements
89
-
90
- ## Dependencies
91
-
92
- - **Home Page** ([home-page.md](home-page.md)): Footer navigation links include a link to the home page.
93
- - **About Page** ([about-page.md](about-page.md)): Footer navigation links include a link to the about page.
94
- - **Contact Page** ([contact-page.md](contact-page.md)): Footer navigation links include a link to the contact page.
95
-
96
- Note: The footer can be built before these pages exist by using placeholder destinations. The dependency is on the link targets being available at launch.
97
-
98
- ## Assumptions & Risks
99
-
100
- **Assumptions:**
101
-
102
- - The business has an established name and can provide a short tagline or description for footer use.
103
- - Legal pages (privacy policy, terms of use, accessibility statement) will exist as link destinations by launch, even if as simple placeholder pages.
104
- - Footer content (identity info, links) is stable and changes infrequently; developer-managed updates are acceptable.
105
- - A single, shared footer is sufficient — no page-specific footer variations are needed.
106
-
107
- **Key risks:**
108
-
109
- - **Legal page readiness:** The footer links to legal pages that may not yet exist. Mitigation: links can point to placeholder pages during development; the footer layout is not blocked by legal content.
110
- - **Navigation consistency with header:** If a separate header or navigation bar exists, the footer's navigation links must stay in sync. Mitigation: both should draw link destinations from a shared configuration or data source to avoid drift.
111
-
112
- ## Success Metrics
113
-
114
- 1. The footer is present and visually consistent on every page of the site.
115
- 2. All footer links (navigation and legal) navigate to their correct destinations without errors.
116
- 3. Visitors can identify the business name and find at least one navigation link within 3 seconds of viewing the footer.
117
- 4. The footer renders correctly across desktop, tablet, and mobile viewports with no layout issues.
118
-
119
- ## Implementation Context
120
-
121
- > This feature PRD is portable and project-agnostic. During implementation, consult the project's `gspec/profile.md` (target users, positioning), `gspec/style.md` (design system), `gspec/stack.md` (technology choices), and `gspec/practices.md` (development standards) to resolve project-specific context.