Skip to content

ci: add GitHub Pages with MkDocs Material#1

Merged
yohei1126 merged 4 commits intomainfrom
ci/github-pages
Apr 1, 2026
Merged

ci: add GitHub Pages with MkDocs Material#1
yohei1126 merged 4 commits intomainfrom
ci/github-pages

Conversation

@yohei1126
Copy link
Copy Markdown
Contributor

@yohei1126 yohei1126 commented Apr 1, 2026

Summary

  • Adds MkDocs Material pipeline for GitHub Pages (docs/**site/)
  • Replaces placeholder mdBook setup with MkDocs Material theme
  • mkdocs.yml with full nav (Introduction → Field Investigation)
  • Workflow: setup-python + pip install mkdocs-material + mkdocs build --strict
  • Removes mdBook-specific docs/book.toml and docs/SUMMARY.md

Test plan

  • Workflow runs on push to docs/** or mkdocs.yml
  • mkdocs build --strict passes (no broken links)
  • Pages deploys and all 7 nav sections are accessible
  • Dark/light mode toggle works

🤖 Generated with Claude Code

yohei1126 and others added 4 commits April 1, 2026 18:21
- docs/book.toml: mdBook config pointing src = "." (uses existing docs/)
- docs/SUMMARY.md: fix header to mdBook chapter format
- .github/workflows/pages.yml: build mdBook on push to main (docs/** changes),
  deploy to GitHub Pages; triggers on push (not CI, since this is a Python repo)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- docs/introduction.md, background.md, architecture.md, technical-solution.md,
  scenarios.md, roadmap.md, field-investigation.md — full project docs
- README.md — high-level human overview with links to docs/
- AGENTS.md — agent instructions (layout, procedures, conventions)
- LICENSE-APACHE, LICENSE-MIT — dual licence files

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
- .gitignore: add project-specific ignores — data/raw/, data/processed/,
  target/ (mdBook build), .env (API keys)
- LICENSE: removed (replaced by LICENSE-APACHE and LICENSE-MIT in previous commit)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Replace mdBook pipeline with MkDocs Material for consistency with
Python-based projects. Removes docs/book.toml and docs/SUMMARY.md;
adds mkdocs.yml with Material theme and nav mirroring the prior
chapter structure. Build output moves from target/book/ to site/.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
@yohei1126 yohei1126 changed the title ci: add GitHub Pages workflow to publish docs as mdBook ci: add GitHub Pages with MkDocs Material Apr 1, 2026
@yohei1126 yohei1126 merged commit dc0ddcf into main Apr 1, 2026
yohei1126 added a commit that referenced this pull request Apr 9, 2026
Adds `device_scale_factor=2` to the Playwright browser context so all
screenshots — including `05_sar_shap.png` — render at 2× pixel density on
retina displays.

The screenshot now shows `unmatched_sar_detections_30d` as the primary SHAP
signal (SHAP +0.24, rank #1) for SARI NOUR (MMSI 613115678), satisfying the
Annex A PoC Week 7 deliverable for the Cap Vista submission.

Supporting code shipped in prior PRs:
- `capture_sar_shap()` and `seed_demo_sar.py` — #135
- `unmatched_sar_detections_30d` SAR feature — #126
- `annex-a-submission.md` SAR section updated locally (gitignored _outputs/)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
yohei1126 added a commit that referenced this pull request Apr 9, 2026
## Summary

- Adds `device_scale_factor=2` to the Playwright browser context so
`05_sar_shap.png` renders at 2× pixel density (retina-quality for Cap
Vista submission)

## What this closes

Issue #132 required three things for the Annex A PoC Week 7 deliverable:

| Item | Status | Where |
|------|--------|-------|
| `capture_sar_shap()` — screenshot SAR vessel's SHAP panel | ✅ Shipped
| #135 (`scripts/capture_screenshots.py`) |
| `seed_demo_sar.py` — seed SARI NOUR with `unmatched_sar_detections_30d
> 0` | ✅ Shipped | #135 (`scripts/seed_demo_sar.py`) |
| `annex-a-submission.md` — rewrite SAR section as implemented feature +
embed screenshot | ✅ Done locally | `_outputs/` (gitignored) |
| HiDPI screenshot quality | ✅ This PR | `device_scale_factor=2` |

## Screenshot result

`05_sar_shap.png` shows `unmatched_sar_detections_30d` as the **#1 SHAP
signal** for SARI NOUR (MMSI 613115678):

| Feature | Value | SHAP |
|---------|-------|------|
| Unmatched SAR Detections 30d | 3 detections | +0.24 ← **top signal** |
| AIS Gap Count 30d | 5 gaps | +0.18 |
| Loitering Hours 30d | 19 hrs | +0.11 |

The SAR signal alone accounts for 38% of this vessel's composite score.

## Annex changes (local, gitignored)

`_outputs/annex-a-submission.md` — SAR section already headed "### SAR
Integration — Implemented" with matching logic (gap > 6 h, proximity ≤
50 km), data sources (SkyTruth/Cerulean, Copernicus), and
`05_sar_shap.png` now embedded inline.

## Test plan

- [ ] `uv run python scripts/use_demo_watchlist.py --backup && uv run
python scripts/seed_demo_sar.py`
- [ ] Start dashboard: `uv run uvicorn src.api.main:app --reload`
- [ ] Run: `uv run python scripts/capture_screenshots.py`
- [ ] Verify `_outputs/screenshots/05_sar_shap.png` shows SAR as top
SHAP signal

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
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