v0.3.0: Gap-to-Draft pipeline, Living Standards Observatory, blog series

Gap-to-Draft Pipeline (ietf pipeline):
- Context builder assembles ideas, RFC foundations, similar drafts, ecosystem vision
- Generator produces outlines + sections using rich context with Claude
- Quality gates: novelty (embedding similarity), references, format, self-rating
- Family coordinator generates 5-draft ecosystem (AEM/ATD/HITL/AEPB/APAE)
- I-D formatter with proper headers, references, 72-char wrapping

Living Standards Observatory (ietf observatory):
- Source abstraction with IETF + W3C fetchers
- 7-step update pipeline: snapshot, fetch, analyze, embed, ideas, gaps, record
- Static GitHub Pages dashboard (explorer, gap tracker, timeline)
- Weekly CI/CD automation via GitHub Actions

Also includes:
- 361 drafts (expanded from 260 with 6 new keywords), 403 authors, 1,262 ideas, 12 gaps
- Blog series (8 posts planned), reports, arXiv paper figures
- Agent team infrastructure (CLAUDE.md, scripts, dev journal)
- 5 new DB tables, schema migration, ~15 new query methods

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-04 00:48:57 +01:00
parent be9cf9c5d9
commit d6beb9c0a0
87 changed files with 24471 additions and 401 deletions

View File

@@ -0,0 +1,19 @@
#!/usr/bin/env bash
# Fetch AI/agent drafts with expanded keyword set (original 6 + 6 new).
# Run from project root: bash scripts/fetch-expanded-keywords.sh
#
# New keywords added 2026-03-03 after probing Datatracker API:
# mcp, agentic, inference, generative, intelligent, aipref
# These brought in ~101 new drafts (260 -> 361).
set -euo pipefail
cd "$(dirname "$0")/.."
echo "=== Fetching with expanded keywords ==="
python -m ietf_analyzer.cli fetch \
-k mcp -k agentic -k inference -k generative -k intelligent -k aipref
echo ""
echo "=== Draft count ==="
sqlite3 data/drafts.db "SELECT COUNT(*) || ' total drafts' FROM drafts;"
sqlite3 data/drafts.db "SELECT COUNT(*) || ' drafts with full text' FROM drafts WHERE full_text IS NOT NULL AND full_text != '';"