gap-documentation
Document missing content in media archives with standardized GAP-NOTE markers that guide acquisition and measure completeness
What this skill does
# GAP-NOTE Documentation Skill
A systematic approach to documenting missing content in media archives using standardized gap markers that guide acquisition, measure completeness, and enable parallel collection workflows.
## Overview
GAP-NOTE.md files serve as placeholders in directories where content is expected but not yet acquired. They transform empty directories from ambiguous voids into actionable instructions, creating a clear separation between "not yet collected" and "intentionally excluded."
This pattern emerged from field testing during music archive curation (issue #81), where agents needed explicit guidance on acquisition priorities and strategies without requiring central coordination.
## The GAP-NOTE.md Template
### Standard Structure
```markdown
# GAP-NOTE: {Directory Purpose}
## Expected Content
{What should be here}
## Acquisition Strategy
{How to obtain it}
## Priority
{HIGH | MEDIUM | LOW}
## Sources
- {Source 1}
- {Source 2}
```
### Field Descriptions
**Title Line (`# GAP-NOTE: ...`)**
- Brief description of directory purpose
- Helps agents understand context at a glance
- Example: `# GAP-NOTE: BBC Radio Sessions (1990-1995)`
**Expected Content**
- Specific description of missing content
- Include formats, quality expectations, metadata requirements
- Be concrete enough to validate completion
- Example: "Lossless audio (FLAC/ALAC) of all BBC Radio 1 sessions, with broadcast date, presenter name, and tracklisting"
**Acquisition Strategy**
- Step-by-step instructions for obtaining content
- Include API endpoints, web scrapers, manual download URLs
- Specify required credentials, rate limits, legal considerations
- Example: "Use BBC Sounds API → filter by artist → download via yt-dlp → transcode to FLAC"
**Priority**
- Standardized levels: HIGH, MEDIUM, LOW
- Determines resource allocation for parallel workflows
- See Priority Scoring section below
**Sources**
- URLs, API endpoints, contact information
- Structured as bulleted list for easy parsing
- Include backup sources where available
- Example: `- https://www.bbc.co.uk/sounds/brand/b006wkqb`
## Lifecycle Management
### 1. Creation
Created when establishing directory structure but before content acquisition:
```bash
# Create directory and gap marker
mkdir -p "Artist Name/Radio Sessions/BBC Radio 1"
cat > "Artist Name/Radio Sessions/BBC Radio 1/GAP-NOTE.md" <<'INNER_EOF'
# GAP-NOTE: BBC Radio 1 Sessions
## Expected Content
Lossless audio recordings of all BBC Radio 1 sessions (1990-1995)
with metadata: broadcast date, presenter, tracklist, duration
## Acquisition Strategy
1. Query BBC Sounds API for artist sessions
2. Download via yt-dlp with metadata extraction
3. Transcode to FLAC if necessary
4. Extract and verify tracklist from audio
## Priority
HIGH
## Sources
- https://www.bbc.co.uk/sounds/brand/b006wkqb
- https://archive.org/details/bbcradio1sessions
INNER_EOF
```
### 2. Active Use
Agents read GAP-NOTE.md as instructions during acquisition:
```bash
# Find high-priority gaps
find . -name "GAP-NOTE.md" -exec grep -l "^## Priority$" {} \; | \
xargs grep -A1 "^## Priority$" | grep "HIGH" | cut -d: -f1
# Read acquisition strategy
grep -A20 "^## Acquisition Strategy$" "path/to/GAP-NOTE.md"
```
### 3. Completion and Removal
Once content acquired, GAP-NOTE.md is removed or replaced:
```bash
# Option 1: Remove when content present
rm "Artist Name/Radio Sessions/BBC Radio 1/GAP-NOTE.md"
# Option 2: Replace with catalog
mv "Artist Name/Radio Sessions/BBC Radio 1/GAP-NOTE.md" \
"Artist Name/Radio Sessions/BBC Radio 1/CATALOG.md"
```
## Priority Scoring
### HIGH Priority
**Criteria:**
- Core content essential to collection purpose
- Readily available from reliable sources
- Legal and ethical to acquire
- Low technical complexity
**Examples:**
- Radio sessions from major broadcasters (BBC, NPR)
- Album artwork from official label websites
- Press photos from artist official sites
- Lyrics from licensed databases
**Expected timeframe:** Hours to days
### MEDIUM Priority
**Criteria:**
- Supplementary content enhancing collection
- Requires moderate effort or coordination
- May involve multiple sources or processing steps
- Quality/completeness trade-offs acceptable
**Examples:**
- Concert bootlegs from trading communities
- Artist photos from Wikimedia Commons requiring attribution
- Interviews transcribed from audio/video
- Fan-created setlists cross-referenced with recordings
**Expected timeframe:** Days to weeks
### LOW Priority
**Criteria:**
- Nice-to-have content, non-essential
- Difficult to source or verify
- May require manual intervention
- Uncertain availability or legal status
**Examples:**
- Pre-label era demo recordings
- Rare promotional materials
- Personal photos from fan archives
- Unverified session information
**Expected timeframe:** Weeks to months (or indefinite)
## Completeness Measurement
### Gap Inventory
Count remaining gaps to measure collection progress:
```bash
# Total gap count
find . -name "GAP-NOTE.md" | wc -l
# Gaps by priority
echo "=== Collection Gaps by Priority ==="
echo -n "HIGH: "
grep -r "^## Priority" --include="GAP-NOTE.md" . | grep -A1 "^## Priority$" | grep -c "HIGH"
echo -n "MEDIUM: "
grep -r "^## Priority" --include="GAP-NOTE.md" . | grep -A1 "^## Priority$" | grep -c "MEDIUM"
echo -n "LOW: "
grep -r "^## Priority" --include="GAP-NOTE.md" . | grep -A1 "^## Priority$" | grep -c "LOW"
```
### Completeness Percentage
Calculate completion based on gap ratio:
```bash
#!/bin/bash
# Calculate archive completeness
TOTAL_DIRS=$(find . -type d | wc -l)
GAP_DIRS=$(find . -name "GAP-NOTE.md" | wc -l)
COMPLETE_DIRS=$((TOTAL_DIRS - GAP_DIRS))
PERCENT=$((COMPLETE_DIRS * 100 / TOTAL_DIRS))
echo "Archive Completeness: $PERCENT%"
echo " Complete: $COMPLETE_DIRS/$TOTAL_DIRS directories"
echo " Gaps remaining: $GAP_DIRS"
```
### Gap Report
Generate structured report for review:
```bash
#!/bin/bash
# Generate gap report with locations and priorities
echo "# Archive Gap Report"
echo "Generated: $(date -I)"
echo ""
for priority in HIGH MEDIUM LOW; do
echo "## $priority Priority"
find . -name "GAP-NOTE.md" -print0 | while IFS= read -r -d '' file; do
if grep -A1 "^## Priority$" "$file" | grep -q "$priority"; then
dir=$(dirname "$file")
title=$(grep "^# GAP-NOTE:" "$file" | sed 's/# GAP-NOTE: //')
echo "- **$dir**"
echo " $title"
fi
done
echo ""
done
```
## Parallel Gap Fill Pattern
Multiple agents can work on gaps simultaneously by claiming GAP-NOTE files:
### 1. Claim a Gap
```bash
# Add agent claim to gap note
echo "" >> "path/to/GAP-NOTE.md"
echo "## Claimed By" >> "path/to/GAP-NOTE.md"
echo "Agent: $AGENT_ID" >> "path/to/GAP-NOTE.md"
echo "Timestamp: $(date -Iseconds)" >> "path/to/GAP-NOTE.md"
```
### 2. Execute Acquisition
Follow the acquisition strategy documented in the GAP-NOTE:
```bash
# Read strategy section
STRATEGY=$(sed -n '/^## Acquisition Strategy$/,/^##/p' "path/to/GAP-NOTE.md" | \
grep -v "^##")
# Execute steps (example)
while IFS= read -r step; do
echo "Executing: $step"
# ... implement step execution ...
done <<< "$STRATEGY"
```
### 3. Validate and Close
```bash
# Verify content acquired
if [ -f "expected-content-file.flac" ]; then
# Move GAP-NOTE to completion log
mkdir -p .archive-logs/completed-gaps
mv "path/to/GAP-NOTE.md" ".archive-logs/completed-gaps/$(date -I)-gap-filled.md"
echo "Gap filled successfully"
else
# Update GAP-NOTE with failure info
echo "" >> "path/to/GAP-NOTE.md"
echo "## Acquisition Attempt" >> "path/to/GAP-NOTE.md"
echo "Failed: $(date -Iseconds)" >> "path/to/GAP-NOTE.md"
echo "Reason: Content not available from listed sources" >> "path/to/GAP-NOTE.md"
fi
```
## Real-World Examples
### Example 1: Radio Sessions
```markdown
# GAP-NOTE: BBC Radio 1 Sessions (1990-1995)
## Expected Content
Lossless audio recordings (FLAC/ALAC) of all BBC Radio 1 sessions
between 1990-19Related in Writing & Docs
jax-development
IncludedUse this skill when the user is writing, debugging, profiling, refactoring, reviewing, benchmarking, parallelising, exporting, or explaining JAX code, or when they mention JAX, jax.numpy, jit, grad, value_and_grad, vmap, scan, lax, random keys, pytrees, jax.Array, sharding, Mesh, PartitionSpec, NamedSharding, pmap, shard_map, Pallas, XLA, StableHLO, checkify, profiler, or the JAX repo. It helps turn NumPy or PyTorch-style code into pure functional JAX, fix tracer/control-flow/shape/PRNG bugs, remove recompiles and host-device syncs, choose transforms and sharding strategies, inspect jaxpr/lowering/IR, and benchmark compiled code correctly.
nature-article-writer
IncludedDrafts, rewrites, diagnostically critiques, and style-calibrates primary research manuscripts for Nature and Nature Portfolio journals. Use when the user wants a Nature-style title, summary paragraph or abstract, introduction, results, discussion, methods, figure legends, presubmission enquiry, cover letter, reviewer response, or when a scientific draft sounds generic, jargon-heavy, structurally weak, or AI-ish and needs precise, broad-reader-friendly prose without inventing data, analyses, or references. Best for primary research articles and letters rather than reviews or press releases unless explicitly adapting one.
deckrd
IncludedDocument-driven framework that derives requirements, specifications, implementation plans, and executable tasks from goals through structured AI dialogue. Use when user says "write requirements", "create spec", "plan implementation", "derive tasks", "structure this feature", "break down into tasks", or "document this module". Also use for reverse engineering existing code into docs (/deckrd rev). Do NOT use for direct code writing — use /deckrd-coder after tasks are generated. Do NOT use when the user only wants to run or fix existing code without planning.
clinical-decision-support
IncludedGenerate professional clinical decision support (CDS) documents for pharmaceutical and clinical research settings, including patient cohort analyses (biomarker-stratified with outcomes) and treatment recommendation reports (evidence-based guidelines with decision algorithms). Supports GRADE evidence grading, statistical analysis (hazard ratios, survival curves, waterfall plots), biomarker integration, and regulatory compliance. Outputs publication-ready LaTeX/PDF format optimized for drug development, clinical research, and evidence synthesis.
handling-sf-data
IncludedSalesforce data operations with 130-point scoring. Use this skill to create, update, delete, bulk import/export, generate test data, and clean up org records using sf CLI and anonymous Apex. TRIGGER when: user creates test data, performs bulk import/export, uses sf data CLI commands, needs data factory patterns for Apex tests, or needs to seed/clean records in a Salesforce org. DO NOT TRIGGER when: SOQL query writing only (use querying-soql), Apex test execution (use running-apex-tests), or metadata deployment (use deploying-metadata).
accelint-ac-to-playwright
IncludedConvert and validate acceptance criteria for Playwright test automation. Use when user asks to (1) review/evaluate/check if AC are ready for automation, (2) assess if AC can be converted as-is, (3) validate AC quality for Playwright, (4) turn AC into tests, (5) generate tests from acceptance criteria, (6) convert .md bullets or .feature Gherkin files to Playwright specs, (7) create test automation from requirements. Handles both bullet-style markdown and Gherkin syntax with JSON test plan generation and validation.