New Extension Ingestion Protocol
Status
Evidence hierarchy to preserve
Victor Li book = primary anchor -> foundational papers = supporting / verification layer -> topic-specific extension papers = extension layer -> Lee lab publications = lab positioning layer -> teaching and AI workflow files = derived use layer
A new extension folder is not a new theory layer. It is a topic-specific evidence collection attached to the existing book-anchored Atlas.
---
1. When to create a new extension folder
Create a new extension folder only when all conditions below are met:
1. Professor Lee explicitly asks to add a new extension topic.
2. The topic is not already covered adequately by an existing extension folder.
3. The batch contains multiple papers or a coherent topic cluster.
4. The papers extend, apply, or update Victor Li 2019 book concepts rather than forming a new primary anchor.
5. The extension can be mapped to existing Atlas nodes such as `02_concepts/`, `04_material_systems/`, or `05_experiments/`.
Do **not** create a new extension folder when:
Recommended naming:
<topic>_extension
Examples:
self_sensing_extensionthermal_adaptive_extensionstructural_application_extensionmarine_ecc_extensionxct_dic_characterization_extension
---
2. Required folder structure
Use the following folder pattern exactly:
00_sources/<topic>_extension/├── full_text/├── source_notes/├── paper_cards/├── originals/└── metadata/03_papers/<topic>_extension/07_visualization/<topic>_extension_claim_evidence_matrix.csv07_visualization/<topic>_extension_edges.csv
Folder meanings:
---
3. Required files
Each extension must produce or update the following files:
3.1 Source collection files
00_sources/<topic>_extension/metadata/<topic>_extension_source_index.csv00_sources/<topic>_extension/metadata/<topic>_extension_source_index.md00_sources/<topic>_extension/metadata/missing_original_pdf_request_list.md00_sources/<topic>_extension/originals/README.md
If original PDFs are supplied:
00_sources/<topic>_extension/originals/originals_registry.csv
If original PDFs are not supplied:
3.2 Paper-level files
For each paper:
00_sources/<topic>_extension/full_text/<paper_id>_full_text.md00_sources/<topic>_extension/source_notes/<paper_id>_source_note.md00_sources/<topic>_extension/paper_cards/<paper_id>_paper_card.md03_papers/<topic>_extension/<paper_id>_paper_card.md
3.3 Visualization / graph files
07_visualization/<topic>_extension_claim_evidence_matrix.csv07_visualization/<topic>_extension_edges.csv07_visualization/<topic>_extension_ingestion_report.md07_visualization/<topic>_extension_ingestion_summary.json
After graph refinement, extension edges may also be reflected in:
07_visualization/graph_paper_to_node_edges.csv07_visualization/graph_concept_to_concept_edges.csv
---
4. Source note schema
Use the schema in:
09_ai_workflows/external_ai_pdf_processing_request_template.md
Required frontmatter:
---title: ""authors: ""year:journal: ""volume: ""issue: ""pages: ""doi: ""pdf_filename: ""source_collection: "external"atlas_layer: "extension"related_book_chapter: "Chapter N: title"related_atlas_nodes: - "02_concepts/..." - "04_material_systems/..." - "05_experiments/..."verification_status: "source_note_seed | verified_from_pdf | verified_from_full_text | needs_check"---
Required sections:
# [Paper Title]## One-line Summary## 1. Document Information## 2. Why this paper matters for the Atlas## 3. Key Contributions## 4. Methodology## 5. Key Results## 6. Atlas Node Links## 7. Claim-Evidence Candidates## 8. Relationship to Victor Li 2019 Book## 9. Limitations and Cautions## 10. Keywords / Glossary
Rules:
---
5. Paper card schema
Use the schema in:
09_ai_workflows/external_ai_pdf_processing_request_template.md
Required sections:
# [Author Year] — [Short Title]## Citation## Why this paper matters## Main contribution## Evidence summary## Linked Atlas nodes## Relationship to Victor Li book## Claim-evidence rows to add## Verification status## Cautions
The paper card should be concise but still source-grounded.
Paper card must include:
---
6. Claim-evidence matrix schema
Create:
07_visualization/<topic>_extension_claim_evidence_matrix.csv
Minimum columns:
paper_idyeartitledoiatlas_nodeatlas_fileclaimevidence_excerpt_or_summarypage_or_sectionfigure_table_equationstatussource_notefull_textpaper_cardverification_statusrelated_book_chapteroriginal_pdf_status
Classification columns to add during first-pass stabilization:
mechanism_categorymaterial_systemfiber_typebinder_typetest_methodkey_metriclab_relevanceclaim_strengthverification_levelpriority_for_synthesis
Allowed verification values:
verified_from_pdfverified_from_full_textverified_from_source_noteverified_from_source_note_pending_user_pdfpending_user_pdfneeds_checkneeds_ocr_check
Rules:
---
7. Node supporting-source update protocol
For each claim row, update the relevant existing Atlas node whenever possible.
Preferred target node folders:
02_concepts/04_material_systems/05_experiments/06_lab_position/07_visualization/08_teaching/09_ai_workflows/
Taxonomy guard:
Update protocol:
1. Identify existing nodes from `related_atlas_nodes` in the source note.
2. Prefer existing nodes over new node creation.
3. Add or update a `### <Topic> extension sources` subsection under `## Anchor evidence` or `### Supporting sources`.
4. Include:
- paper card path;
- year and title;
- DOI;
- evidence status;
- short main linked claim;
- matrix path.
5. If many papers link to one node, summarize counts and list representative papers rather than dumping all rows.
Do not create a new node unless:
New node minimum structure:
# Node Title## Status- Created during <topic> extension ingestion.## Core idea## Anchor evidence### Supporting sources## Linked nodes## Cautions
---
8. Graph edge update protocol
Create a dedicated edge file:
07_visualization/<topic>_extension_edges.csv
Required columns:
sourcetargetrelationsource_filetarget_filestatusnotes
Common paper-to-node relation:
supports
Other allowed relation types:
supportsextendsapplies_tomeasuresmeasured_byrequiresenablescontrolsdepends_onaffectsvariant_ofmechanism_ofcontrastslab_contributes_to
Rules:
- `07_visualization/graph_paper_to_node_edges.csv`
- `07_visualization/graph_concept_to_concept_edges.csv`
- `07_visualization/graph_lab_to_global_edges.csv` only if applicable.
Graph validation:
---
9. Original PDF matching protocol
Original PDFs may arrive later. Use this process:
1. User saves PDFs in:
00_sources/<topic>_extension/originals/
2. Match PDFs to source records by:
- `pdf_filename`;
- DOI;
- normalized title;
- first author + year + short title;
- SHA-256 hash for duplicate detection.
3. Update source index:
original_pdf_status = availableoriginal_pdf_path = 00_sources/<topic>_extension/originals/<filename>.pdforiginal_pdf_sha256 = <hash>
4. Update registry:
00_sources/<topic>_extension/originals/originals_registry.csv
Recommended registry columns:
stored_filenamesource_pathsha256file_sizematched_paper_idmatch_statusalias_ofduplicate_groupnotes
5. Regenerate:
00_sources/<topic>_extension/metadata/missing_original_pdf_request_list.md
6. If an original PDF belongs to foundational papers or lab publications too, mirror it to the appropriate source collection and record the registry entry.
7. Do not delete duplicate PDFs automatically; record duplicate hash groups and canonical filename.
---
10. Verification checklist
Before reporting a new extension complete, verify:
Source files
Evidence files
Node updates
Graph
Final report
---
11. Final report template
Create:
07_visualization/<topic>_extension_ingestion_report.md07_visualization/<topic>_extension_ingestion_summary.json
Markdown report template:
# <Topic> Extension Ingestion Report## Scope- Extension name: `<topic>_extension`- User request date:- Source input:- Original PDFs supplied: yes / no / partial## Files created### Source collection- `00_sources/<topic>_extension/full_text/`- `00_sources/<topic>_extension/source_notes/`- `00_sources/<topic>_extension/paper_cards/`- `00_sources/<topic>_extension/originals/`- `00_sources/<topic>_extension/metadata/<topic>_extension_source_index.csv`### Paper cards- `03_papers/<topic>_extension/`### Visualization- `07_visualization/<topic>_extension_claim_evidence_matrix.csv`- `07_visualization/<topic>_extension_edges.csv`## Counts- Source records:- Full text files:- Source notes:- Paper cards:- Claim-evidence rows:- Graph edges:- Nodes updated:- New nodes created:- Original PDFs available:- Original PDFs pending:## Verification- Source paths valid: yes / no- Node target paths valid: yes / no- Duplicate edge count:- Missing target nodes:- PDF verification status:## Notes and cautions- [Caution 1]- [Caution 2]## Next tasks1. [Next task]2. [Next task]
JSON summary minimum fields:
{ "extension_name": "<topic>_extension", "source_records": 0, "full_text_files": 0, "source_notes": 0, "paper_cards": 0, "claim_evidence_rows": 0, "graph_edges": 0, "nodes_updated": 0, "new_nodes_created": 0, "original_pdfs_available": 0, "original_pdfs_pending": 0, "duplicate_edges_removed": 0, "missing_target_nodes": 0, "verification_status": "pending_user_pdf | verified_from_pdf | mixed"}---
12. Antigravity / external-AI PDF processing handoff
When using Antigravity or another external AI to process PDFs, first ask it to rename original PDF files using the Zotero-style filename format supplied by Professor Lee:
{{ firstCreator replaceFrom="^([^\s,]+).*" replaceTo="$1" case="hyphen" suffix="-" }}{{ year suffix="-" }}{{ if shortTitle }}{{ shortTitle replaceFrom="^((?:\S+\s+){4}\S+).*" replaceTo="$1" case="hyphen" }}{{ else }}{{ title replaceFrom="^([^:?.!]+).*$" replaceTo="$1" replaceFrom="^((?:\S+\s+){4}\S+).*" replaceTo="$1" case="hyphen" }}{{ endif }}Then give Antigravity the file:
09_ai_workflows/external_ai_pdf_processing_request_template.md
Concrete template path in this Atlas:
/Users/bylee/Documents/Research_Knowledge/ECC_Research_Atlas/09_ai_workflows/external_ai_pdf_processing_request_template.md
Recommended instruction to Antigravity:
논문 원본 파일명을 위 형식으로 수정해줘.그 다음 `/Users/bylee/Documents/Research_Knowledge/ECC_Research_Atlas/09_ai_workflows/external_ai_pdf_processing_request_template.md`의 지침대로 첨부 PDF를 처리해줘.중요: full text 추출은 도구/스크립트를 써도 되지만, paper_cards와 source_notes는 자동 keyword matching으로 만들지 말고, 논문 full text를 읽고 내용 검토 후 작성해.잘못된 내용이 많으면 안 되므로, 수치, page/figure/table, test method, material system, direct tensile strain capacity 여부를 하나하나 확인해.불확실하면 `needs_check` 또는 `needs_ocr_check`로 표시해.
After Antigravity returns files, Atlas ingestion must still do an internal verification pass:
1. Check filenames and folder placement.
2. Read source notes and paper cards for obvious hallucinations.
3. Confirm key numbers against full text.
4. Mark uncertain rows as `needs_check`.
5. Ingest into the requested `<topic>_extension` only after Professor Lee explicitly approves the topic.
---
13. User request phrases
To start a new extension
<topic> extension을 새로 만들자. 이 batch를 `00_sources/<topic>_extension/` 구조로 ingest하고, claim-evidence matrix, node supporting sources, graph edge까지 연결해줘.
To add original PDFs later
<topic>_extension/originals 폴더에 PDF 저장했어. missing list와 매칭해서 source index 업데이트하고 원본 연결 검증해줘.
To verify Antigravity output before ingestion
Antigravity가 만든 full_text/source_notes/paper_cards를 검토해서 hallucination, 수치 오류, page/figure/table 오류를 확인하고 needs_check 표시해줘. 파이썬 자동분류만 하지 말고 full text 기준으로 주요 claim을 직접 검토해줘.
### Tier 1 / Tier 2 node policy
Use only Tier 1 core nodes and Tier 2 working extension nodes. Do not create Tier 3 node files. If a topic is too specific for existing nodes, record it as a matrix/source-note tag (`candidate_tag`, `binder_type`, `fiber_type`, `curing_regime`, `application_context`, `test_method`, `key_metric`) rather than creating a new `.md` node. Promote a tag to a node only after it recurs across at least 3 papers or the user explicitly approves promotion.
Mandatory per-paper compliance check
For every individual paper or batch-ingested extension/lab-position paper, verify the node assignment against this policy before marking ingestion complete.
Required behavior:
1. Check each paper's `related_atlas_nodes`, paper-card links, claim-evidence matrix rows, and graph edges.
2. Ensure each paper is connected to at least one relevant **Tier 1 core node** whenever the paper contains usable evidence. Core nodes are the backbone for cross-extension retrieval and comparison.
3. Add **Tier 2 working extension nodes** only when useful for viewing an extension cluster independently, such as sustainable/green ECC, extreme ductility, self-healing, impact resistance, or lab-position clusters.
4. If an assigned node is too granular, off-taxonomy, missing, or effectively Tier 3, do not leave it for the user to fix. Directly remap it to the nearest Tier 1/Tier 2 node and preserve the specific detail as matrix/source-note tags or columns.
5. Maintain both views:
- cross-Atlas view through Tier 1 core nodes;
- extension-specific view through Tier 2 working extension nodes and dedicated extension edge/matrix files.
6. Report any automatic remapping in the ingestion report or consolidation log.
Narrow Tier 1 / Tier 2 ingestion rule
As of 2026-08-21, Tier 1 is limited to the Victor Li 2019 book backbone nodes listed in `07_visualization/node_tier_inventory.csv`. During every individual-paper or batch ingestion:
1. Assign at least one relevant Tier 1 core node to each paper with usable evidence.
2. Add Tier 2 working extension nodes only when they help preserve an extension-specific or lab-position view.
3. Do not create Tier 3 node files. Store one-off detail in tags and matrix/source-note columns.
4. If an AI-provided node is too granular, off-taxonomy, missing, or stale, remap it directly to the nearest Tier 1/Tier 2 node and record the detail as `candidate_tag` or another matrix column.
5. Report remapping in the ingestion report.
---
12. Node-policy compliance rules (added 2026-08-26)
2026-08-26 전수 감사에서 드러난 재발 방지 규칙. 신규 ingestion 시 반드시 적용한다.
12.1 Same-pass rule (카드-엣지 동시성)
논문 카드의 `related_atlas_nodes`(특히 Tier 1)와 배치 엣지 CSV(`<batch>_edges.csv`)는 **같은 작업 패스에서** 기록한다. 어느 하나만 쓰고 마감하면 정책 위반이다.
마감 전 자동 검증:
# 모든 카드에 대해: 카드가 선언한 Tier 1 노드 경로가 엣지 CSV 행으로 존재하는가# cards_without_tier1_edge == 0 이어야 통과
12.2 Canonical node names only
엣지 target은 `node_tier_inventory.csv`에 등록된 실제 파일 stem이어야 한다. 레거시/유사 명칭(life_cycle_assessment, durability_enhancement, self_healing 등)으로 엣지를 만들지 않는다 — 2026-08-26에 189행이 이 유형으로 깨져 있었다.
12.3 No paper rows in concept-to-concept edges
개념 간 엣지 파일(`graph_concept_to_concept_edges.csv`)에는 개념 노드 간 엣지만 둔다. paper→node 행은 배치 엣지 CSV로. (위반 시 graph_paper_support_edges_archive_2026-08-26.csv처럼 분리 아카이브.)
12.4 Node file completeness at creation
노드 파일 신규 생성 또는 대량 보강 시 필수 섹션:
Node tier classification 블록 / Status / Core idea(실측 근거 기반, "To be expanded" 금지)/ Linked nodes(클러스터 내 관련 노드) / Anchor evidence / Key extension evidence
파일 말미에 과거 "Migrated supporting note" 블록을 흡수한 경우 Consolidation note 표식을 넣고 그 아래는 갱신하지 않는다.
12.5 Intra-cluster concept edges
같은 extension 주제로 ingestion한 노드끼리는 연관성이 크므로, concept-to-concept 엣지(sibling_of, variant_of, depends_on 등)를 함께 추가한다.