agentic-sdlc 1.5.1 → 1.8.1
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.
- package/.agent/rules/agent-execution.md +55 -0
- package/.agent/rules/ai-enforcement.md +4 -3
- package/.agent/rules/artifacts.md +79 -77
- package/.agent/rules/auto-learning.md +78 -0
- package/.agent/rules/code-quality.md +40 -0
- package/.agent/rules/git-workflow.md +44 -24
- package/.agent/rules/global.md +10 -6
- package/.agent/rules/naming-conventions.md +55 -0
- package/.agent/skills/role-ba.md +6 -2
- package/.agent/skills/role-brain.md +5 -1
- package/.agent/skills/role-cloud.md +38 -0
- package/.agent/skills/role-dev.md +31 -5
- package/.agent/skills/role-devops.md +9 -0
- package/.agent/skills/role-game.md +35 -0
- package/.agent/skills/role-mobile.md +55 -0
- package/.agent/skills/role-orchestrator.md +4 -0
- package/.agent/skills/role-pm.md +4 -0
- package/.agent/skills/role-po.md +4 -0
- package/.agent/skills/role-reporter.md +4 -0
- package/.agent/skills/role-research.md +78 -0
- package/.agent/skills/role-sa.md +4 -0
- package/.agent/skills/role-seca.md +4 -0
- package/.agent/skills/role-stakeholder.md +4 -0
- package/.agent/skills/role-tester.md +15 -3
- package/.agent/skills/role-uiux.md +4 -0
- package/.agent/templates/CHANGELOG-Template.md +2 -2
- package/.agent/templates/Design-Verification-Report-Template.md +4 -4
- package/.agent/templates/DevOps-Plan-Template.md +7 -0
- package/.agent/templates/Specification-Template.md +38 -0
- package/.agent/templates/ab-comparison-report.md +175 -0
- package/.agent/templates/observer-report.md +131 -0
- package/.agent/templates/quality-score-report.md +197 -0
- package/.agent/templates/self-learning-digest.md +268 -0
- package/.agent/templates/system-health-report.md +330 -0
- package/.agent/workflows/ab.md +101 -0
- package/.agent/workflows/autogen.md +65 -0
- package/.agent/workflows/brain.md +52 -42
- package/.agent/workflows/commit.md +61 -0
- package/.agent/workflows/cycle.md +36 -15
- package/.agent/workflows/debug.md +123 -0
- package/.agent/workflows/deep-search.md +82 -0
- package/.agent/workflows/docs.md +144 -0
- package/.agent/workflows/emergency.md +17 -15
- package/.agent/workflows/explore.md +15 -9
- package/.agent/workflows/housekeeping.md +24 -11
- package/.agent/workflows/metrics.md +14 -12
- package/.agent/workflows/monitor.md +98 -0
- package/.agent/workflows/observe.md +84 -0
- package/.agent/workflows/onboarding.md +135 -0
- package/.agent/workflows/orchestrator.md +21 -14
- package/.agent/workflows/planning.md +126 -0
- package/.agent/workflows/refactor.md +132 -0
- package/.agent/workflows/release.md +19 -12
- package/.agent/workflows/review.md +99 -0
- package/.agent/workflows/score.md +104 -0
- package/.agent/workflows/sprint.md +16 -14
- package/.agent/workflows/validate.md +13 -11
- package/.agent/workflows/worktree.md +154 -0
- package/CHANGELOG.md +88 -0
- package/README.md +12 -4
- package/bin/cli.js +143 -13
- package/docs/.brain-health-history.json +42 -0
- package/docs/.brain-improvements.json +53 -0
- package/docs/.brain-learner-log.json +27 -0
- package/docs/.brain-scores.json +310 -0
- package/docs/architecture/system-flow.mermaid +81 -0
- package/docs/artifacts/2026-01-05-enforcement-gates-plan.md +80 -0
- package/docs/artifacts/2026-01-05-workflow-analysis.md +231 -0
- package/docs/artifacts/README.md +26 -0
- package/docs/guides/MCP-GUIDE.md +1 -0
- package/docs/reports/2026-01-05-autogen-evaluation.md +64 -0
- package/docs/reports/2026-01-05-brain-layer-analysis.md +109 -0
- package/docs/reports/2026-01-05-repository-audit.md +253 -0
- package/docs/reports/Metrics-Dashboard-2026-01-08.md +29 -0
- package/docs/reports/Metrics-Dashboard-Final.md +29 -0
- package/docs/reports/Validation-Report-2026-01-05.md +40 -0
- package/docs/reports/Validation-Report-2026-01-08.md +40 -0
- package/docs/reports/worktrunk-audit.md +94 -0
- package/docs/solutions/README.md +96 -0
- package/docs/walkthroughs/2026-01-05-audit-implementation.md +36 -0
- package/docs/walkthroughs/2026-01-05-autonomy-release.md +54 -0
- package/docs/walkthroughs/2026-01-05-enforcement-gates.md +33 -0
- package/docs/walkthroughs/2026-01-05-judge-enhancement.md +30 -0
- package/docs/walkthroughs/2026-01-05-landing-page-orchestrator.md +52 -0
- package/docs/walkthroughs/2026-01-05-validation.md +32 -0
- package/docs/walkthroughs/2026-01-05-workflow-audit.md +89 -0
- package/docs/walkthroughs/2026-01-05-workflow-refactoring.md +44 -0
- package/docs/walkthroughs/2026-01-06-worktrunk-integration.md +41 -0
- package/docs/walkthroughs/README.md +25 -0
- package/package.json +33 -19
- package/.agent/knowledge-base/AUTO-LEARNING-GUIDE.md +0 -327
- package/.agent/knowledge-base/HOW-IT-WORKS.md +0 -365
- package/.agent/knowledge-base/INDEX.md +0 -43
- package/.agent/knowledge-base/README.md +0 -242
- package/.agent/knowledge-base/architecture/.gitkeep +0 -1
- package/.agent/knowledge-base/architecture/KB-2026-01-01-003-neo4j-graph-database-skills.md +0 -1146
- package/.agent/knowledge-base/architecture/README.md +0 -98
- package/.agent/knowledge-base/bugs/.gitkeep +0 -1
- package/.agent/knowledge-base/bugs/KB-2026-01-02-yaml-special-character-escaping.md +0 -56
- package/.agent/knowledge-base/bugs/medium/KB-2026-01-01-001-example-auto-learned.md +0 -198
- package/.agent/knowledge-base/features/.gitkeep +0 -1
- package/.agent/knowledge-base/features/KB-2026-01-01-001-landing-page-design-trends-2026.md +0 -646
- package/.agent/knowledge-base/features/KB-2026-01-01-004-uiux-design-skills-2026.md +0 -945
- package/.agent/knowledge-base/features/KB-2026-01-01-005-modern-ai-landing-page-ui.md +0 -310
- package/.agent/knowledge-base/features/KB-2026-01-01-006-award-winning-landing-page-patterns.md +0 -324
- package/.agent/knowledge-base/features/KB-2026-01-02-001-cleanup-workflow.md +0 -242
- package/.agent/knowledge-base/features/KB-2026-01-02-002-landing-page-monorepo-architecture.md +0 -148
- package/.agent/knowledge-base/features/KB-2026-01-02-003-premium-glassmorphism-patterns.md +0 -58
- package/.agent/knowledge-base/features/KB-2026-01-04-ai-agent-enforcement.md +0 -46
- package/.agent/knowledge-base/features/README.md +0 -83
- package/.agent/knowledge-base/features/figma-landing-page-workflow.md +0 -311
- package/.agent/knowledge-base/features/figma-mcp-sa-guide.md +0 -673
- package/.agent/knowledge-base/features/figma-mcp-uiux-guide.md +0 -459
- package/.agent/knowledge-base/performance/.gitkeep +0 -1
- package/.agent/knowledge-base/performance/KB-2026-01-02-lazy-loading-optimization.md +0 -80
- package/.agent/knowledge-base/platform-specific/.gitkeep +0 -1
- package/.agent/knowledge-base/platform-specific/KB-2026-01-02-windows-console-encoding.md +0 -56
- package/.agent/knowledge-base/role-guides/DEV-KB-Guide.md +0 -527
- package/.agent/knowledge-base/role-guides/DEVOPS-KB-Guide.md +0 -491
- package/.agent/knowledge-base/role-guides/PM-KB-Guide.md +0 -299
- package/.agent/knowledge-base/role-guides/SECA-KB-Guide.md +0 -555
- package/.agent/knowledge-base/role-guides/TESTER-KB-Guide.md +0 -519
- package/.agent/knowledge-base/security/.gitkeep +0 -1
- package/.agent/knowledge-base/security/KB-2026-01-02-input-validation-sanitization.md +0 -74
- package/.agent/rules/AUTO-LEARNING.md +0 -418
- package/.agent/rules/KNOWLEDGE-BASE.md +0 -45
- package/.agent/skills/role-qa.md +0 -81
- package/.agent/workflows/compound.md +0 -51
- package/.agent/workflows/preflight.md +0 -35
- package/.agent/workflows/route.md +0 -160
- package/bin/kb +0 -34
- package/bin/kb.bat +0 -28
- package/bin/kb_cli.py +0 -226
- package/bin/lib/README.md +0 -411
- package/bin/lib/__init__.py +0 -7
- package/bin/lib/__pycache__/kb_add.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_common.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_compound.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_index.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_list.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_search.cpython-313.pyc +0 -0
- package/bin/lib/__pycache__/kb_stats.cpython-313.pyc +0 -0
- package/bin/lib/kb_add.py +0 -203
- package/bin/lib/kb_common.py +0 -224
- package/bin/lib/kb_compound.py +0 -250
- package/bin/lib/kb_index.py +0 -193
- package/bin/lib/kb_list.py +0 -144
- package/bin/lib/kb_search.py +0 -121
- package/bin/lib/kb_stats.py +0 -153
|
@@ -1,98 +0,0 @@
|
|
|
1
|
-
# Architecture Knowledge Base
|
|
2
|
-
|
|
3
|
-
This directory contains knowledge base entries related to architecture decisions, database technologies, system design patterns, and technical infrastructure.
|
|
4
|
-
|
|
5
|
-
## Current Entries
|
|
6
|
-
|
|
7
|
-
### KB-2026-01-01-003: Neo4j Graph Database Skills
|
|
8
|
-
**Category:** Architecture / Database Technology
|
|
9
|
-
**Date:** 2026-01-01
|
|
10
|
-
**Prepared By:** @SA
|
|
11
|
-
|
|
12
|
-
Comprehensive guide to Neo4j graph database covering:
|
|
13
|
-
- **Cypher Query Language:** Complete syntax reference and patterns
|
|
14
|
-
- **Performance Optimization:** Indexing strategies and query tuning
|
|
15
|
-
- **Data Modeling:** Best practices for graph design
|
|
16
|
-
- **Advanced Techniques:** Full-text search, spatial indexing, graph algorithms
|
|
17
|
-
- **Integration:** Driver examples for Python, JavaScript, Java
|
|
18
|
-
- **Deployment:** Configuration, backup, security best practices
|
|
19
|
-
|
|
20
|
-
**Key Skills Covered:**
|
|
21
|
-
- Creating and querying nodes and relationships
|
|
22
|
-
- Cypher pattern matching and path finding
|
|
23
|
-
- Index creation and optimization strategies
|
|
24
|
-
- Performance profiling with EXPLAIN and PROFILE
|
|
25
|
-
- Full-text and spatial indexing
|
|
26
|
-
- Graph algorithms (shortest path, PageRank, community detection)
|
|
27
|
-
- Data modeling patterns for common use cases
|
|
28
|
-
- Security and access control
|
|
29
|
-
- Backup and recovery procedures
|
|
30
|
-
|
|
31
|
-
**Use Cases:**
|
|
32
|
-
- Social network analysis
|
|
33
|
-
- Fraud detection systems
|
|
34
|
-
- Knowledge graphs
|
|
35
|
-
- Recommendation engines
|
|
36
|
-
- Network and IT operations
|
|
37
|
-
- Access control systems
|
|
38
|
-
|
|
39
|
-
**Quick Reference:**
|
|
40
|
-
- Essential Cypher commands cheat sheet
|
|
41
|
-
- Performance optimization checklist
|
|
42
|
-
- Common graph patterns
|
|
43
|
-
- Integration code examples
|
|
44
|
-
- Deployment configurations
|
|
45
|
-
|
|
46
|
-
---
|
|
47
|
-
|
|
48
|
-
## Architecture Decision Records
|
|
49
|
-
|
|
50
|
-
This section tracks major architectural decisions made in the project:
|
|
51
|
-
|
|
52
|
-
| Decision | Technology | Rationale | Date | KB Entry |
|
|
53
|
-
|----------|-----------|-----------|------|----------|
|
|
54
|
-
| Graph Database | Neo4j | Optimal for highly connected data, relationship-first queries | 2026-01-01 | KB-2026-01-01-003 |
|
|
55
|
-
|
|
56
|
-
---
|
|
57
|
-
|
|
58
|
-
## How to Use This Knowledge
|
|
59
|
-
|
|
60
|
-
### For System Analysts (@SA)
|
|
61
|
-
1. **Before Design:** Review relevant architecture patterns
|
|
62
|
-
2. **During Design:** Reference best practices and anti-patterns
|
|
63
|
-
3. **After Implementation:** Document decisions and learnings
|
|
64
|
-
|
|
65
|
-
### For Developers (@DEV)
|
|
66
|
-
1. **Before Coding:** Check for existing patterns and solutions
|
|
67
|
-
2. **During Development:** Follow documented best practices
|
|
68
|
-
3. **After Completion:** Update KB with new insights
|
|
69
|
-
|
|
70
|
-
### For DevOps (@DEVOPS)
|
|
71
|
-
1. **Deployment Planning:** Review configuration and scaling strategies
|
|
72
|
-
2. **Operations:** Reference backup, monitoring, and security procedures
|
|
73
|
-
3. **Troubleshooting:** Check performance optimization guides
|
|
74
|
-
|
|
75
|
-
---
|
|
76
|
-
|
|
77
|
-
## Related Categories
|
|
78
|
-
|
|
79
|
-
- **Features:** Implementation patterns and UI/UX considerations
|
|
80
|
-
- **Performance:** Optimization techniques and benchmarks
|
|
81
|
-
- **Security:** Security best practices and vulnerability mitigations
|
|
82
|
-
- **Bugs:** Common issues and their resolutions
|
|
83
|
-
|
|
84
|
-
---
|
|
85
|
-
|
|
86
|
-
## Contributing
|
|
87
|
-
|
|
88
|
-
When adding new architecture entries:
|
|
89
|
-
1. Use the knowledge entry template
|
|
90
|
-
2. Include decision rationale
|
|
91
|
-
3. Document alternatives considered
|
|
92
|
-
4. Provide code examples
|
|
93
|
-
5. Link to related entries
|
|
94
|
-
6. Update this README
|
|
95
|
-
|
|
96
|
-
---
|
|
97
|
-
|
|
98
|
-
#architecture #knowledge-base #system-design #database
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This folder stores bug patterns and solutions
|
|
@@ -1,56 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
title: "YAML Frontmatter Special Character Escaping"
|
|
3
|
-
category: bug
|
|
4
|
-
priority: medium
|
|
5
|
-
sprint: sprint-[N]
|
|
6
|
-
date: 2026-01-02
|
|
7
|
-
tags: [yaml, parsing, frontmatter, knowledge-base, escaping]
|
|
8
|
-
related_files: [tools/utils/kb_manager.py]
|
|
9
|
-
attempts: 1
|
|
10
|
-
time_saved: "20 minutes (future reuse)"
|
|
11
|
-
author: "DEV"
|
|
12
|
-
---
|
|
13
|
-
|
|
14
|
-
## Problem
|
|
15
|
-
YAML parser fails when frontmatter contains unquoted special characters like `@`:
|
|
16
|
-
|
|
17
|
-
```
|
|
18
|
-
found character '@' that cannot start any token
|
|
19
|
-
author: @DEV + @UIUX
|
|
20
|
-
^
|
|
21
|
-
```
|
|
22
|
-
|
|
23
|
-
## Root Cause
|
|
24
|
-
In YAML, `@` is a reserved indicator that cannot appear unquoted at the start of a value. The YAML 1.1 spec reserves `@` for future use.
|
|
25
|
-
|
|
26
|
-
## Solution
|
|
27
|
-
Quote values containing special characters:
|
|
28
|
-
|
|
29
|
-
```yaml
|
|
30
|
-
# ❌ Invalid
|
|
31
|
-
author: @DEV + @UIUX
|
|
32
|
-
|
|
33
|
-
# ✅ Valid
|
|
34
|
-
author: "DEV + UIUX"
|
|
35
|
-
```
|
|
36
|
-
|
|
37
|
-
## Prevention
|
|
38
|
-
1. Always quote values containing: `@`, `:`, `#`, `*`, `!`, `|`, `>`
|
|
39
|
-
2. Use KB entry templates that pre-quote author fields
|
|
40
|
-
3. Add YAML validation to `/compound` workflow
|
|
41
|
-
4. Document YAML escaping rules in KB README
|
|
42
|
-
|
|
43
|
-
## Validation Script
|
|
44
|
-
```python
|
|
45
|
-
import yaml
|
|
46
|
-
try:
|
|
47
|
-
yaml.safe_load(frontmatter)
|
|
48
|
-
except yaml.YAMLError as e:
|
|
49
|
-
print(f"Invalid YAML: {e}")
|
|
50
|
-
```
|
|
51
|
-
|
|
52
|
-
## Related Patterns
|
|
53
|
-
- KB entry creation workflow
|
|
54
|
-
- YAML best practices
|
|
55
|
-
|
|
56
|
-
#bug #yaml #knowledge-base #escaping
|
|
@@ -1,198 +0,0 @@
|
|
|
1
|
-
# Knowledge Entry - React Hydration Mismatch in Astro Components
|
|
2
|
-
|
|
3
|
-
## Document Info
|
|
4
|
-
| Field | Value |
|
|
5
|
-
|-------|-------|
|
|
6
|
-
| ID | KB-2026-01-01-001 |
|
|
7
|
-
| Date | 2026-01-01 |
|
|
8
|
-
| Author | @DEV |
|
|
9
|
-
| Category | Bug Pattern |
|
|
10
|
-
| Severity | Medium |
|
|
11
|
-
| Auto-Generated | Yes |
|
|
12
|
-
| Source Task | TASK-123 |
|
|
13
|
-
| Sprint | 1 |
|
|
14
|
-
| Project | Landing Page |
|
|
15
|
-
| Tags | #react, #astro, #hydration, #ssr, #auto-learned |
|
|
16
|
-
|
|
17
|
-
---
|
|
18
|
-
|
|
19
|
-
## Problem / Challenge
|
|
20
|
-
|
|
21
|
-
### Description
|
|
22
|
-
React components in Astro were throwing hydration mismatch errors when using client-side state management. The error appeared only in production builds, not during development.
|
|
23
|
-
|
|
24
|
-
### Context
|
|
25
|
-
- **Platform:** Web
|
|
26
|
-
- **Technology:** Astro 4.16, React 18, Tailwind CSS
|
|
27
|
-
- **Environment:** Production
|
|
28
|
-
- **Affected Components:** Features.astro, Hero.astro
|
|
29
|
-
|
|
30
|
-
### Symptoms
|
|
31
|
-
- Console error: "Hydration failed because the initial UI does not match what was rendered on the server"
|
|
32
|
-
- Visual flash of unstyled content (FOUC)
|
|
33
|
-
- Interactive elements not responding immediately
|
|
34
|
-
|
|
35
|
-
### Impact
|
|
36
|
-
- **Users Affected:** 100% of visitors
|
|
37
|
-
- **Business Impact:** Poor first impression, potential bounce rate increase
|
|
38
|
-
- **Technical Impact:** Client-side JavaScript re-rendering entire component
|
|
39
|
-
|
|
40
|
-
---
|
|
41
|
-
|
|
42
|
-
## Root Cause Analysis
|
|
43
|
-
|
|
44
|
-
### What Happened
|
|
45
|
-
Astro was server-rendering React components with initial state, but client-side hydration was using different initial values, causing a mismatch.
|
|
46
|
-
|
|
47
|
-
### Why It Happened
|
|
48
|
-
The component was using `Date.now()` for generating unique IDs during SSR, which produced different values during client-side hydration.
|
|
49
|
-
|
|
50
|
-
### Contributing Factors
|
|
51
|
-
- Server and client running at different times
|
|
52
|
-
- No stable ID generation strategy
|
|
53
|
-
- Missing `client:load` directive specification
|
|
54
|
-
|
|
55
|
-
### Code/Configuration Example
|
|
56
|
-
```jsx
|
|
57
|
-
// Problematic code
|
|
58
|
-
export default function Features() {
|
|
59
|
-
const [id] = useState(() => `feature-${Date.now()}`);
|
|
60
|
-
return <div id={id}>...</div>;
|
|
61
|
-
}
|
|
62
|
-
```
|
|
63
|
-
|
|
64
|
-
---
|
|
65
|
-
|
|
66
|
-
## Solution
|
|
67
|
-
|
|
68
|
-
### Approach
|
|
69
|
-
Use stable, deterministic IDs that are consistent between server and client rendering.
|
|
70
|
-
|
|
71
|
-
### Implementation
|
|
72
|
-
```jsx
|
|
73
|
-
// Fixed code
|
|
74
|
-
export default function Features() {
|
|
75
|
-
const [id] = useState('feature-static-id');
|
|
76
|
-
// OR use useId hook in React 18+
|
|
77
|
-
const id = useId();
|
|
78
|
-
return <div id={id}>...</div>;
|
|
79
|
-
}
|
|
80
|
-
```
|
|
81
|
-
|
|
82
|
-
### Configuration Changes
|
|
83
|
-
```astro
|
|
84
|
-
---
|
|
85
|
-
// In Astro component, specify hydration strategy
|
|
86
|
-
import Features from '../components/Features';
|
|
87
|
-
---
|
|
88
|
-
|
|
89
|
-
<Features client:load />
|
|
90
|
-
```
|
|
91
|
-
|
|
92
|
-
### Steps to Resolve
|
|
93
|
-
1. Identify components with dynamic ID generation
|
|
94
|
-
2. Replace `Date.now()` or `Math.random()` with stable IDs
|
|
95
|
-
3. Use React 18's `useId()` hook for unique IDs
|
|
96
|
-
4. Add explicit `client:load` directive in Astro
|
|
97
|
-
5. Test in production build mode
|
|
98
|
-
|
|
99
|
-
### Time to Resolve
|
|
100
|
-
- **First Attempt:** 2 hours (tried various hydration strategies)
|
|
101
|
-
- **Total Attempts:** 3
|
|
102
|
-
- **Final Resolution:** 4 hours
|
|
103
|
-
|
|
104
|
-
---
|
|
105
|
-
|
|
106
|
-
## Prevention
|
|
107
|
-
|
|
108
|
-
### How to Avoid in Future
|
|
109
|
-
- Always use stable IDs for SSR components
|
|
110
|
-
- Use React 18's `useId()` hook for unique identifiers
|
|
111
|
-
- Test production builds before deployment
|
|
112
|
-
- Avoid time-based or random values in initial render
|
|
113
|
-
|
|
114
|
-
### Detection Strategy
|
|
115
|
-
- Run `npm run build && npm run preview` before deployment
|
|
116
|
-
- Check browser console for hydration warnings
|
|
117
|
-
- Add automated tests for SSR/hydration consistency
|
|
118
|
-
|
|
119
|
-
### Code Review Checklist
|
|
120
|
-
- [ ] No `Date.now()` or `Math.random()` in component initialization
|
|
121
|
-
- [ ] Using `useId()` for dynamic IDs
|
|
122
|
-
- [ ] Explicit hydration directive specified
|
|
123
|
-
- [ ] Tested in production build mode
|
|
124
|
-
|
|
125
|
-
---
|
|
126
|
-
|
|
127
|
-
## Related Issues
|
|
128
|
-
|
|
129
|
-
### Similar Bugs/Features
|
|
130
|
-
- Hydration issues with conditional rendering
|
|
131
|
-
- SSR state management problems
|
|
132
|
-
|
|
133
|
-
### Related Documentation
|
|
134
|
-
- [React 18 Hydration](https://react.dev/reference/react-dom/client/hydrateRoot)
|
|
135
|
-
- [Astro Client Directives](https://docs.astro.build/en/reference/directives-reference/#client-directives)
|
|
136
|
-
|
|
137
|
-
### Related Knowledge Entries
|
|
138
|
-
- KB-2026-01-01-002: Astro Island Architecture Best Practices
|
|
139
|
-
|
|
140
|
-
---
|
|
141
|
-
|
|
142
|
-
## Lessons Learned
|
|
143
|
-
|
|
144
|
-
### What Worked Well
|
|
145
|
-
- React 18's `useId()` hook solved the problem elegantly
|
|
146
|
-
- Production build testing caught the issue before deployment
|
|
147
|
-
- Astro's explicit hydration directives provide good control
|
|
148
|
-
|
|
149
|
-
### What Didn't Work
|
|
150
|
-
- Trying to synchronize timestamps between server and client
|
|
151
|
-
- Using localStorage to persist IDs (not available during SSR)
|
|
152
|
-
|
|
153
|
-
### Key Takeaways
|
|
154
|
-
1. Always test SSR applications in production mode
|
|
155
|
-
2. Avoid non-deterministic values in initial render
|
|
156
|
-
3. Use framework-provided solutions (useId) over custom implementations
|
|
157
|
-
4. Explicit is better than implicit for hydration strategies
|
|
158
|
-
|
|
159
|
-
---
|
|
160
|
-
|
|
161
|
-
## Search Keywords
|
|
162
|
-
hydration, mismatch, astro, react, ssr, server-side-rendering, useId, Date.now, production-build, FOUC
|
|
163
|
-
|
|
164
|
-
---
|
|
165
|
-
|
|
166
|
-
## Verification
|
|
167
|
-
|
|
168
|
-
### How to Test
|
|
169
|
-
```bash
|
|
170
|
-
# Build and preview production
|
|
171
|
-
npm run build
|
|
172
|
-
npm run preview
|
|
173
|
-
|
|
174
|
-
# Check browser console for errors
|
|
175
|
-
# Look for "Hydration failed" messages
|
|
176
|
-
```
|
|
177
|
-
|
|
178
|
-
### Expected Result
|
|
179
|
-
- No hydration warnings in console
|
|
180
|
-
- Smooth rendering without FOUC
|
|
181
|
-
- Interactive elements work immediately
|
|
182
|
-
|
|
183
|
-
### Regression Test
|
|
184
|
-
- [x] Test case added to prevent recurrence
|
|
185
|
-
- [x] Automated test created for SSR consistency
|
|
186
|
-
|
|
187
|
-
---
|
|
188
|
-
|
|
189
|
-
## References
|
|
190
|
-
- Bug Report: TASK-123
|
|
191
|
-
- Pull Request: PR-456
|
|
192
|
-
- Documentation: https://docs.astro.build/en/guides/framework-components/
|
|
193
|
-
- External Resources: https://react.dev/reference/react/useId
|
|
194
|
-
|
|
195
|
-
---
|
|
196
|
-
|
|
197
|
-
#knowledge-base #bug-pattern #react #astro #hydration #ssr #auto-learned #sprint-1
|
|
198
|
-
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
# This folder stores complex feature implementations
|