plugins/research/skills/corpus-index-build/SKILL.md
Build graph indices (by-topic, by-year, authors, citation-network) from corpus state using definitions in .aiwg/config.yaml. Replaces a manual 3-agent dispatch.
npx skillsauth add jmagly/aiwg corpus-index-buildInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Build research graph indices from corpus state. Reads graph definitions from .aiwg/config.yaml and generates by-topic, by-year, authors, and citation-network indices from the current findings and citation data.
Scope: research corpora, not SDLC artifacts. This skill renders the human-readable markdown indices declared under
.aiwg/config.yamlgraphs:(output paths likeindices/by-topic.md) from corpus frontmatter. The CLI commandaiwg index buildis a separate feature operated by theindexskill inaiwg-utils— it builds the SDLC artifact graph at.aiwg/.index/*(JSON nodes/edges/checksums) and does not render the markdown indices listed inindex.graphs.indices.manifest. Ifaiwg index builddid not produce yourindices/*.md, that is expected — invokecorpus-index-buildinstead.
/corpus-index-build--graph <name> (optional)Build a single named graph. Must match a key in config.yaml graphs section.
--all (optional)Build all graphs defined in config, including those not in defaultBuild. Default behavior builds only defaultBuild graphs.
--force (optional)Rebuild from scratch, ignoring cached state. Default: incremental (only rebuild if source data changed).
--format (optional)Output format: full (default), summary, or json.
Graphs are defined in .aiwg/config.yaml:
graphs:
by-topic:
type: cluster
source: findings
groupBy: tags
output: indices/by-topic.md
defaultBuild: true
by-year:
type: timeline
source: findings
groupBy: year
output: indices/by-year.md
defaultBuild: true
authors:
type: entity
source: findings
groupBy: authors
output: indices/authors.md
defaultBuild: true
citation-network:
type: graph
source: citations
edges: [outgoing, incoming]
output: indices/citation-network.md
defaultBuild: false # expensive, build on demand
by-methodology:
type: cluster
source: findings
groupBy: methodology
output: indices/by-methodology.md
defaultBuild: false
.aiwg/config.yaml graph definitionsdefaultBuild: true graphs--graph <name>: build only the named graph--all: build every defined graph--force)For each graph, collect the required data:
Cluster graphs (by-topic, by-methodology):
findings/REF-*.md frontmattergroupBy field values (tags, methodology)Map<group, Set<REF-XXX>>Timeline graphs (by-year):
year from each finding's frontmatterMap<year, Set<REF-XXX>> sorted chronologicallyEntity graphs (authors):
authors field from each findingMap<author, Set<REF-XXX>>Citation graphs (citation-network):
Map<REF-XXX, {outgoing: Set, incoming: Set}>For each graph, write the index markdown to the configured output path:
Cluster index format (by-topic example):
# By Topic Index
Generated: 2026-04-13T12:00:00Z
Sources: 372 findings
## agentic-workflows (47 papers)
| REF | Title | Year | GRADE |
|-----|-------|------|-------|
| REF-001 | Multi-Agent Orchestration | 2024 | High |
| REF-016 | AutoGen Framework | 2023 | High |
...
## multi-agent-systems (31 papers)
...
Citation network format:
# Citation Network
Nodes: 372 | Edges: 1,247 | Density: 0.009
Avg degree: 6.7 | Max hub: REF-016 (34 edges)
## Top 10 Hubs
| REF | Title | In | Out | Total |
...
## Isolated Nodes (0 edges)
| REF | Title | Reason |
...
Corpus Index Build
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Graphs built: 3 / 3
by-topic: 47 groups, 372 papers → indices/by-topic.md
by-year: 8 years, 372 papers → indices/by-year.md
authors: 412 authors, 372 papers → indices/authors.md
Skipped (not in defaultBuild):
citation-network: use --graph citation-network to build
by-methodology: use --graph by-methodology to build
Each index file stores a Generated: timestamp and a source checksum. On incremental builds:
| Component | Relationship |
|-----------|-------------|
| citation-backfill | Must run before citation-network graph build |
| research-gap-detect | Consumes citation-network graph for cluster analysis (#815) |
| corpus-snapshot | Reads index metrics for snapshot reports (#814) |
| aiwg index build | The existing CLI command — this skill extends it for research-specific graphs |
| research-status | Reports index staleness as a health metric |
# Build default graphs (by-topic, by-year, authors)
/corpus-index-build
# Build a specific graph
/corpus-index-build --graph citation-network
# Build everything including optional graphs
/corpus-index-build --all
# Force full rebuild
/corpus-index-build --force
# JSON output for programmatic use
/corpus-index-build --format json
aiwg index build infrastructuredata-ai
Report which research-corpus radar sidecars are overdue for refresh. Computes staleness (days since last refresh vs the cadence window) for every radar, sorted most-overdue-first. Runs via `aiwg corpus radar-status`.
data-ai
Aggregate research-corpus radar sidecars into a corpus or per-cluster freshness report — totals, overdue count, per-cluster / per-GRADE / per-trajectory breakdowns, an overdue table, and per-radar rationale snippets. Runs via `aiwg corpus radar-report`.
testing
Scaffold radar/freshness sidecars for research-corpus REFs. Pulls title/authors from the citation sidecar and GRADE from the analysis doc, defaults the refresh cadence from GRADE and the cluster from a corpus-local map, and stamps documentation/radar/REF-XXX-radar.md. Runs via `aiwg corpus radar-init`.
data-ai
Compute an entity's publication trajectory — per-year paper counts, topic drift, hot-streak detection (≥3 consecutive A-grade years), and career phase. Runs via `aiwg corpus profile-temporal`.