Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
19 changes: 19 additions & 0 deletions docs/evidence/DOCS_HEALTH_METRIC_DEFINITIONS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# Documentation Health Metric Definitions

This document defines the core metrics used to assess documentation health.

## Metric Definitions

| Metric | Definition | Collection Method | Target |
|--------|------------|-------------------|--------|
| Link health | % of internal doc links that resolve | `check_doc_links.py` | 100% |
| Claim safety | Number of overclaiming phrases | `check_claims.py` | 0 |
| Index coverage | % of docs linked from PROJECT_INDEX.md | Manual audit | 100% |
| Freshness | Age since last significant update | `git log` | < 6 months |
| Onboarding time | Time from clone to demo | Stopwatch | < 15 min |
| Concept card coverage | % of artifact types with cards | Manual audit | 100% |

## Related

- `docs/evidence/DOCS_READINESS_CHECKLIST.md` — per-release checklist
- `docs/evidence/DOCS_REVIEW_CADENCE_POLICY.md` — review schedule
16 changes: 16 additions & 0 deletions docs/evidence/METRIC_GUIDE_CONTRIBUTOR_DOCS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
# Metric Guide: Contributor Docs

**Question:** Does a new contributor have everything they need to make a first change?

**What to track:** Whether all contributor-facing docs cover the full path from setup to merged PR.

**Documents to check:**
- CONTRIBUTING.md
- QUICKSTART.md
- CONTRIBUTOR_CURRICULUM.md
- RUNBOOK_PICKING_UP_ISSUE.md
- RUNBOOK_ASKING_FOR_REVIEW.md

**Target:** A contributor can follow the documented path without gaps.

**What good looks like:** A first-time contributor can clone, run the demo, pick an issue, make a change, and submit a PR using only the documented steps.
11 changes: 11 additions & 0 deletions docs/evidence/METRIC_GUIDE_MAINTENANCE_HEALTH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Metric Guide: Maintenance Health

**Question:** Are the docs staying current, or are they accumulating stale content?

**What to track:** Age of last significant update per document.

**Target:** No document older than 6 months without review.

**How to measure:** Check `git log --oneline docs/` for each document.

**What good looks like:** Active documents are updated within the last 3 months. Stale documents are flagged for review or retirement.
11 changes: 11 additions & 0 deletions docs/evidence/METRIC_GUIDE_NAVIGATION_HEALTH.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,11 @@
# Metric Guide: Navigation Health

**Question:** Can a reader find the document they need without searching?

**What to track:** Whether all docs are linked from PROJECT_INDEX.md.

**Target:** 100% of documents in docs/ are indexed in PROJECT_INDEX.md.

**How to measure:** Compare `find docs/ -name "*.md"` against links in PROJECT_INDEX.md.

**What good looks like:** A new reader can navigate from PROJECT_INDEX.md to any document in one or two clicks.
15 changes: 15 additions & 0 deletions docs/evidence/METRIC_GUIDE_RELEASE_READINESS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,15 @@
# Metric Guide: Release Readiness

**Question:** Is the project ready for a public release?

**What to track:** Whether all release artifacts exist and pass checks.

**Artifacts to check:**
- `make full-reproducibility-report` succeeds
- `python scripts/check_doc_links.py` reports 0 broken links
- `python scripts/safety/check_claims.py` — no overclaiming language
- `docs/review/PUBLICATION_PACK.md` checklist is complete

**Target:** All checks pass.

**What good looks like:** A maintainer can run `make full-reproducibility-report`, review the output, and decide whether to proceed.
21 changes: 21 additions & 0 deletions tests/test_metric_docs_batch.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
"""Tests for metric docs batch."""
from pathlib import Path

FILES = [
"METRIC_GUIDE_RELEASE_READINESS.md",
"METRIC_GUIDE_NAVIGATION_HEALTH.md",
"METRIC_GUIDE_MAINTENANCE_HEALTH.md",
"METRIC_GUIDE_CONTRIBUTOR_DOCS.md",
"DOCS_HEALTH_METRIC_DEFINITIONS.md",
]


def test_all_exist():
for f in FILES:
assert Path(f"docs/evidence/{f}").exists(), f"Missing: {f}"


def test_each_has_content():
for f in FILES:
text = Path(f"docs/evidence/{f}").read_text()
assert len(text) > 100, f"{f} too short"
Loading