Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
18 commits
Select commit Hold shift + click to select a range
79aae69
feat: Implement Static Site Generation (SSG) for SEO
raifdmueller Feb 15, 2026
0d5b20f
fix: E2E tests for doc pages - wait for AsciiDoc content to load
raifdmueller Feb 15, 2026
e1bb50d
Revert "fix: E2E tests for doc pages - wait for AsciiDoc content to l…
raifdmueller Feb 15, 2026
229fa9d
Revert "feat: Implement Static Site Generation (SSG) for SEO"
raifdmueller Feb 15, 2026
d5e7401
fix: E2E tests - use .first() for navigation links
raifdmueller Feb 15, 2026
4fe48ce
fix: Add showtitle to AsciiDoc rendering - fixes E2E tests
raifdmueller Feb 15, 2026
cbfbb04
fix: Copy docs before E2E tests in test workflow
raifdmueller Feb 15, 2026
c3ef8d5
ci: Add npm audit for dependency security checking (#83)
raifdmueller Feb 20, 2026
34e63bd
docs: Update documentation to reflect card grid instead of treemap (#91)
raifdmueller Feb 20, 2026
b851d21
fix: Add npm overrides to resolve high-severity vulnerabilities (#83)
raifdmueller Feb 20, 2026
b50e2b8
feat: Set up ESLint + Prettier for code quality (#81)
raifdmueller Feb 20, 2026
ab4354b
Merge pull request #9 from raifdmueller/feature/npm-audit-ci-issue-83
raifdmueller Feb 20, 2026
e769137
Merge pull request #10 from raifdmueller/feature/docs-update-card-gri…
raifdmueller Feb 20, 2026
06daa17
ci: Add CodeQL security analysis workflow (#84)
raifdmueller Feb 20, 2026
ead730f
Merge pull request #11 from raifdmueller/feature/eslint-prettier-issu…
raifdmueller Feb 20, 2026
1f1c70b
Merge pull request #12 from raifdmueller/feature/codeql-sast-issue-84
raifdmueller Feb 20, 2026
7e1c260
Merge remote-tracking branch 'upstream/main'
raifdmueller Feb 20, 2026
1fbfe36
Merge branch 'main' of github.com:raifdmueller/Semantic-Anchors
raifdmueller Feb 20, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
42 changes: 42 additions & 0 deletions .github/workflows/codeql.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,42 @@
name: CodeQL Security Analysis

on:
push:
branches: [main]
pull_request:
branches: [main]
schedule:
# Run weekly on Mondays at 08:00 UTC
- cron: '0 8 * * 1'

jobs:
analyze:
name: Analyze (${{ matrix.language }})
runs-on: ubuntu-latest
permissions:
actions: read
contents: read
security-events: write

strategy:
fail-fast: false
matrix:
language: [javascript-typescript]

steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Initialize CodeQL
uses: github/codeql-action/init@v3
with:
languages: ${{ matrix.language }}
queries: security-extended

- name: Autobuild
uses: github/codeql-action/autobuild@v3

- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v3
with:
category: '/language:${{ matrix.language }}'
48 changes: 48 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -8,6 +8,32 @@ on:
workflow_dispatch:

jobs:
lint:
name: Lint & Format Check
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: website/package-lock.json

- name: Install dependencies
working-directory: ./website
run: npm ci

- name: Run ESLint
working-directory: ./website
run: npm run lint

- name: Check Prettier formatting
working-directory: ./website
run: npm run format:check

e2e-tests:
name: E2E Tests
runs-on: ubuntu-latest
Expand Down Expand Up @@ -83,3 +109,25 @@ jobs:
name: lighthouse-report
path: website/.lighthouseci/
retention-days: 7

dependency-check:
name: Dependency Security Audit
runs-on: ubuntu-latest
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: 'npm'
cache-dependency-path: website/package-lock.json

- name: Install dependencies
working-directory: ./website
run: npm ci

- name: Run security audit
working-directory: ./website
run: npm audit --audit-level=high
171 changes: 86 additions & 85 deletions PROJECT_STATUS.md
Original file line number Diff line number Diff line change
@@ -1,132 +1,133 @@
# Project Status: Semantic Anchors Website Redesign
# Project Status: Semantic Anchors Website

**Last Updated:** 2025-02-13
**Current Phase:** Planning Complete ✅ → Ready for Phase 1
**Last Updated:** 2026-02-20
**Current Phase:** All Phases Complete - Website Live

## 📊 Quick Stats
## Quick Stats

- **19 GitHub Issues** created and ready
- **3 Epics** for organized work (Phase 1, 2, 3)
- **Website Live**: https://llm-coding.github.io/Semantic-Anchors/
- **28 E2E Tests** all passing
- **5 ADRs** with Pugh matrices (ADR-001 to ADR-005)
- **8 open Risk Radar issues** (#81-88) being actively worked on
- **2,693 lines** of specifications
- **2,804 lines** of arc42 architecture
- **4 ADRs** with Pugh matrices

## 📋 Documentation Status
## Documentation Status

| Document | Status | Location |
|----------|--------|----------|
| PRD | Complete | `docs/PRD.md` |
| Use Cases | Complete | `docs/specs/01_use_cases.adoc` |
| API Specification | Complete | `docs/specs/02_api_specification.adoc` |
| Acceptance Criteria | Complete | `docs/specs/03_acceptance_criteria.adoc` |
| ADRs | Complete | `docs/specs/adrs/` |
| arc42 Architecture | Complete | `docs/arc42/` |
| CLAUDE.md | Complete | `CLAUDE.md` |
| PRD | Complete | `docs/PRD.md` |
| Use Cases | Complete | `docs/specs/01_use_cases.adoc` |
| API Specification | Complete | `docs/specs/02_api_specification.adoc` |
| Acceptance Criteria | Complete | `docs/specs/03_acceptance_criteria.adoc` |
| ADRs | Complete | `docs/specs/adrs/` |
| arc42 Architecture | Complete | `docs/arc42/` |
| CLAUDE.md | Complete | `CLAUDE.md` |

## 🎯 Implementation Roadmap
## Implementation Status

### Phase 0: Planning (COMPLETE)
### Phase 0: Planning (COMPLETE)
- [x] Create PRD
- [x] Write specifications
- [x] Create arc42 architecture
- [x] Write ADRs
- [x] Write ADRs (ADR-001 to ADR-005)
- [x] Create GitHub Issues

### 🔄 Phase 1: Foundation (Ready to Start)
**Timeline:** Week 1-2
### Phase 1: Foundation (COMPLETE)
**Epic:** [#35](https://github.com/LLM-Coding/Semantic-Anchors/issues/35)

**Issues:**
- [ ] [#36](https://github.com/LLM-Coding/Semantic-Anchors/issues/36) MECE analysis
- [ ] [#37](https://github.com/LLM-Coding/Semantic-Anchors/issues/37) Role mapping
- [ ] [#38](https://github.com/LLM-Coding/Semantic-Anchors/issues/38) Split README
- [ ] [#39](https://github.com/LLM-Coding/Semantic-Anchors/issues/39) Metadata script
- [ ] [#40](https://github.com/LLM-Coding/Semantic-Anchors/issues/40) Generate includes
- [x] [#36](https://github.com/LLM-Coding/Semantic-Anchors/issues/36) MECE analysis
- [x] [#37](https://github.com/LLM-Coding/Semantic-Anchors/issues/37) Role mapping
- [x] [#38](https://github.com/LLM-Coding/Semantic-Anchors/issues/38) Split README into individual anchor files
- [x] [#39](https://github.com/LLM-Coding/Semantic-Anchors/issues/39) Metadata extraction script
- [x] [#40](https://github.com/LLM-Coding/Semantic-Anchors/issues/40) Generate category/role include files

### ⏳ Phase 2: Website Development (Blocked)
**Timeline:** Week 3-5
### Phase 2: Website Development (COMPLETE)
**Epic:** [#41](https://github.com/LLM-Coding/Semantic-Anchors/issues/41)
**Dependencies:** Phase 1 must complete

**Issues:**
- [ ] [#42](https://github.com/LLM-Coding/Semantic-Anchors/issues/42) Vite setup
- [ ] [#43](https://github.com/LLM-Coding/Semantic-Anchors/issues/43) Treemap
- [ ] [#44](https://github.com/LLM-Coding/Semantic-Anchors/issues/44) Role filter
- [ ] [#45](https://github.com/LLM-Coding/Semantic-Anchors/issues/45) Search
- [ ] [#46](https://github.com/LLM-Coding/Semantic-Anchors/issues/46) AsciiDoc rendering
- [ ] [#47](https://github.com/LLM-Coding/Semantic-Anchors/issues/47) i18n
- [ ] [#48](https://github.com/LLM-Coding/Semantic-Anchors/issues/48) Theming

### ⏳ Phase 3: Automation & Deployment (Blocked)
**Timeline:** Week 6-7
**Epic:** [#49](https://github.com/LLM-Coding/Semantic-Anchors/issues/49)
**Dependencies:** Phase 2 must complete

**Issues:**
- [ ] [#50](https://github.com/LLM-Coding/Semantic-Anchors/issues/50) GitHub Actions
- [ ] [#51](https://github.com/LLM-Coding/Semantic-Anchors/issues/51) Issue templates
- [ ] [#52](https://github.com/LLM-Coding/Semantic-Anchors/issues/52) CONTRIBUTING.md
- [ ] [#53](https://github.com/LLM-Coding/Semantic-Anchors/issues/53) Update README

### 🔮 Phase 4: Enhancement (Future)
**Timeline:** Week 8+
- [x] [#42](https://github.com/LLM-Coding/Semantic-Anchors/issues/42) Vite setup
- [x] [#43](https://github.com/LLM-Coding/Semantic-Anchors/issues/43) Card grid visualization (superseded treemap per ADR-005)
- [x] [#44](https://github.com/LLM-Coding/Semantic-Anchors/issues/44) Role filter
- [x] [#45](https://github.com/LLM-Coding/Semantic-Anchors/issues/45) Search functionality
- [x] [#46](https://github.com/LLM-Coding/Semantic-Anchors/issues/46) AsciiDoc rendering
- [x] [#47](https://github.com/LLM-Coding/Semantic-Anchors/issues/47) i18n (EN/DE)
- [x] [#48](https://github.com/LLM-Coding/Semantic-Anchors/issues/48) Dark/Light theming

- GitHub Copilot validation workflow
- Advanced search features
- Privacy-first analytics
- Service Worker for offline support
### Phase 3: Automation & Deployment (COMPLETE)
**Epic:** [#49](https://github.com/LLM-Coding/Semantic-Anchors/issues/49)

## 🏗️ Tech Stack Decisions
- [x] [#50](https://github.com/LLM-Coding/Semantic-Anchors/issues/50) GitHub Actions deployment
- [x] [#51](https://github.com/LLM-Coding/Semantic-Anchors/issues/51) Issue templates
- [x] [#52](https://github.com/LLM-Coding/Semantic-Anchors/issues/52) CONTRIBUTING.md
- [x] [#53](https://github.com/LLM-Coding/Semantic-Anchors/issues/53) Updated README
- [x] E2E tests with Playwright (28 tests, all passing)
- [x] Lighthouse CI integration

### Phase 4: Enhancement (In Progress)
**Risk Radar issues** tracked in https://github.com/LLM-Coding/Semantic-Anchors/labels/risk-radar

- [ ] [#81](https://github.com/LLM-Coding/Semantic-Anchors/issues/81) ESLint / Prettier configuration
- [ ] [#82](https://github.com/LLM-Coding/Semantic-Anchors/issues/82) Pre-commit hooks (husky)
- [ ] [#83](https://github.com/LLM-Coding/Semantic-Anchors/issues/83) npm audit in CI
- [ ] [#84](https://github.com/LLM-Coding/Semantic-Anchors/issues/84) SAST (Semgrep / CodeQL)
- [ ] [#85](https://github.com/LLM-Coding/Semantic-Anchors/issues/85) Property-based tests
- [ ] [#86](https://github.com/LLM-Coding/Semantic-Anchors/issues/86) AI code review (CodeRabbit / Copilot Review)
- [ ] [#87](https://github.com/LLM-Coding/Semantic-Anchors/issues/87) SonarQube quality gate
- [ ] [#88](https://github.com/LLM-Coding/Semantic-Anchors/issues/88) Sampling review (~20%)
- [ ] GitHub Copilot validation workflow
- [ ] Advanced search features
- [ ] Privacy-first analytics

## Tech Stack Decisions

All decisions are documented with Pugh matrices:

| Decision | Winner | Score | ADR |
|----------|--------|-------|-----|
| Static Site Generator | Vite | +88 | [ADR-001](docs/specs/adrs/adr-001-static-site-generator.adoc) |
| Metadata Storage | AsciiDoc Attributes | +51 | [ADR-002](docs/specs/adrs/adr-002-metadata-storage.adoc) |
| Treemap Library | Apache ECharts | +77 | [ADR-003](docs/specs/adrs/adr-003-treemap-library.adoc) |
| Visualization Library (superseded) | Apache ECharts for Treemap | +77 | [ADR-003](docs/specs/adrs/adr-003-treemap-library.adoc) |
| File Structure | One File per Anchor | +105 | [ADR-004](docs/specs/adrs/adr-004-one-file-per-anchor.adoc) |
| Visualization (current) | Card Grid | +137 | [ADR-005](docs/specs/adrs/adr-005-card-grid-visualization.adoc) |

## 📈 Success Criteria
**Note:** ADR-003 (Apache ECharts for Treemap) was superseded by ADR-005 (Card Grid) due to fundamental usability issues with the treemap (text truncation, poor contrast, viewport cut-off).

### Phase 1 Success
- ✅ MECE-compliant categories
- ✅ All 60+ anchors in separate files
- ✅ Metadata extracted and validated
- ✅ Includes working
## Success Criteria

### Phase 2 Success (MVP)
- ✅ Website runs locally
- ✅ All core features working
- ✅ Responsive design
- ✅ Dark/Light mode
- ✅ EN/DE language switching
### Phase 1 Success (Achieved)
- [x] MECE-compliant categories
- [x] All 60+ anchors in separate files
- [x] Metadata extracted and validated
- [x] Includes working

### Phase 3 Success (Launch)
- ✅ Auto-deployment working
- ✅ Issue templates functional
- ✅ CONTRIBUTING.md clear
- ✅ Website live on GitHub Pages
### Phase 2 Success / MVP (Achieved)
- [x] Website runs locally and on GitHub Pages
- [x] All core features working
- [x] Responsive design
- [x] Dark/Light mode
- [x] EN/DE language switching
- [x] Card grid visualization (replaced original treemap plan)

### Phase 3 Success / Launch (Achieved)
- [x] Auto-deployment working
- [x] Issue templates functional
- [x] CONTRIBUTING.md clear
- [x] Website live: https://llm-coding.github.io/Semantic-Anchors/
- [x] 28 E2E tests passing

### Overall Success Metrics
- Lighthouse Performance > 90
- WCAG 2.1 AA compliance
- Load time < 2s on 3G
- 50% increase in contributions (3 months post-launch)

## 🎯 Next Steps

1. **Review Issue #54** (Project Overview) - Pin it!
2. **Start Phase 1** with Issue #36 (MECE analysis)
3. **Sequential execution**: Complete Phase 1 before starting Phase 2
4. **Regular check-ins**: Update this file as phases complete
- 50% increase in contributions target (3 months post-launch)

## 📞 Contact
## Contact

**Maintainer:** @rdmueller
**Architecture:** Claude Sonnet 4.5 (AI-assisted design)
**Architecture:** Claude Sonnet (AI-assisted design)
**Repository:** https://github.com/LLM-Coding/Semantic-Anchors
**Live Website:** https://llm-coding.github.io/Semantic-Anchors/

---

💡 **Tip:** See [Issue #54](https://github.com/LLM-Coding/Semantic-Anchors/issues/54) for the complete project overview.
See [Issue #54](https://github.com/LLM-Coding/Semantic-Anchors/issues/54) for the complete project overview.
Loading
Loading