docs: integration tools — cross-reference graph, concept index, research digest
Codex-built tooling: cross-reference graph, concept index with build script, and research integrator that extracted 142 scholars, 175 bibliography items, 4 contradiction topics, and coverage maps for Paper 009 planning. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,61 @@
|
||||
# Codex — VIBECODE-THEORY Project
|
||||
|
||||
You are an autonomous agent building structural tools for a philosophy paper series about AI, technology dependence, and the singularity. Work independently — read, build, output.
|
||||
|
||||
## Tool Mapping
|
||||
|
||||
| Instructions say | You use |
|
||||
|-----------------|---------|
|
||||
| `Bash` | `shell` |
|
||||
| `Read` | `read_file` |
|
||||
| `Write` | `write_file` |
|
||||
| `Grep` | `shell` with `grep` |
|
||||
| `Glob` | `shell` with `find` |
|
||||
|
||||
## Bootstrap
|
||||
|
||||
1. Read `CODEX_TASKS.md` — claim the first OPEN task (edit status to `IN PROGRESS`, write your name in `Claimed by`)
|
||||
2. Read all source papers (`001*.md` through `008*.md` + `allegorical/`) — these are your input
|
||||
3. Build the deliverables specified in your task — output goes in `tools/`
|
||||
4. Mark task `DONE` in `CODEX_TASKS.md`
|
||||
5. If another task is OPEN, claim and repeat
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
VIBECODE-THEORY/
|
||||
├── 001-008*.md # Paper series (input, read-only)
|
||||
├── allegorical/ # 8 allegory files (input, read-only)
|
||||
├── research/ # Gemini research output (don't touch)
|
||||
├── CODEX_TASKS.md # Your work queue
|
||||
├── tools/ # Your output goes here
|
||||
└── WORKFLOW.md # Context only
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
- Don't modify paper files or anything in `research/`
|
||||
- Python stdlib preferred. If you need a pip package, install it first.
|
||||
- Self-contained, re-runnable scripts where applicable
|
||||
|
||||
## Project Structure
|
||||
|
||||
```
|
||||
VIBECODE-THEORY/
|
||||
├── 001-008*.md # The paper series (your input)
|
||||
├── allegorical/ # 8 allegory files (your input)
|
||||
├── research/ # Gemini research output (may be empty or in-progress)
|
||||
├── CODEX_TASKS.md # Your work queue
|
||||
├── RESEARCH_TASKS.md # Gemini work queue (don't touch)
|
||||
├── tools/ # Your code output goes here
|
||||
└── WORKFLOW.md # How papers get written (context only)
|
||||
```
|
||||
|
||||
## Rules
|
||||
|
||||
1. **Read before building.** Parse the actual paper files. Don't assume content.
|
||||
2. **Don't modify papers.** The `.md` paper files are source material. Read-only.
|
||||
3. **Don't touch Gemini files.** `RESEARCH_TASKS.md`, `GEMINI.md`, and `research/` are theirs.
|
||||
4. **Output goes in `tools/`.** All scripts, generated data, and output files go in the `tools/` directory.
|
||||
5. **Self-contained scripts.** Use Python stdlib or minimal dependencies. The environment has Python 3, jq, and standard Unix tools. Don't assume pip packages are installed — if you need one, install it first.
|
||||
6. **Claim your task.** Edit `CODEX_TASKS.md` before starting work.
|
||||
+124
@@ -0,0 +1,124 @@
|
||||
# Codex Tasks — Structural Analysis & Tooling
|
||||
|
||||
**Created:** 2026-04-03
|
||||
**Purpose:** Three Codex agents build structural tools and analysis from the VIBECODE-THEORY paper series (papers 001-008 + allegorical directory). These complement the Gemini research swarm by providing machine-readable structure, cross-reference maps, and integration tooling.
|
||||
|
||||
**Protocol:** Each agent claims ONE task by writing their identifier into the `Claimed by` field, then works autonomously. When done, write output to the specified location and mark status as `DONE`.
|
||||
|
||||
---
|
||||
|
||||
## Task C1: Cross-Reference Graph
|
||||
**Status:** DONE
|
||||
**Claimed by:** Codex-GPT5
|
||||
**Output:** `tools/cross-references/`
|
||||
|
||||
Parse all 8 papers and 8 allegory files. Extract every cross-reference between documents — explicit ("Paper 006's theological thread," "as established in Paper 007") and implicit (shared concepts, terms introduced in one paper and used in another).
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
1. **`graph.json`** — Structured JSON graph:
|
||||
```json
|
||||
{
|
||||
"nodes": [
|
||||
{"id": "007", "title": "The Ratchet", "concepts_introduced": ["biological ratchet", "infrastructure threshold", ...]}
|
||||
],
|
||||
"edges": [
|
||||
{"source": "008", "target": "007", "type": "extends", "context": "extends ratchet mechanism with a direction — toward unification"},
|
||||
{"source": "008", "target": "003", "type": "addresses", "context": "responds to falsifiability concern"}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
2. **`graph.mermaid`** — Mermaid diagram showing paper relationships. Use directional edges labeled with relationship type (extends, refutes, addresses, introduces concept used by).
|
||||
|
||||
3. **`dangling_threads.md`** — List of concepts, questions, or claims that are raised in one paper but never resolved or revisited. These are candidates for Paper 009+. For each: which paper raised it, what the open question is, and which (if any) later papers partially address it.
|
||||
|
||||
4. **`concept_flow.md`** — For each major concept (dependency chain, ratchet, infrastructure threshold, cognitive preference shift, automation spiral, knowledge unification, etc.), trace its lifecycle: where introduced, where challenged, where revised, where it currently stands.
|
||||
|
||||
**How to extract:** Read each paper. Look for:
|
||||
- Explicit references: "Paper N," "as established in," "the series has," "prior papers"
|
||||
- Section headers like "Relationship to Prior Papers" (most papers have one)
|
||||
- Shared terminology across papers
|
||||
- Open questions sections (most papers end with these)
|
||||
- The HANDOFF.md file has a summary of key ideas by session
|
||||
|
||||
---
|
||||
|
||||
## Task C2: Concept Index & Glossary Generator
|
||||
**Status:** DONE
|
||||
**Claimed by:** Codex-GPT5
|
||||
**Output:** `tools/concept-index/`
|
||||
|
||||
Build an automated glossary of every named concept, framework, and thesis in the series.
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
1. **`index.json`** — Structured concept index:
|
||||
```json
|
||||
{
|
||||
"concepts": [
|
||||
{
|
||||
"name": "The Biological Ratchet",
|
||||
"aliases": ["neural pruning argument", "dependency ratchet", "physiological argument"],
|
||||
"introduced_in": "007",
|
||||
"definition": "Dependencies don't reverse because the organism physically adapts...",
|
||||
"revised_in": [],
|
||||
"challenged_in": ["003"],
|
||||
"referenced_in": ["008"],
|
||||
"status": "active",
|
||||
"related_concepts": ["cognitive preference shift", "infrastructure threshold"]
|
||||
}
|
||||
]
|
||||
}
|
||||
```
|
||||
|
||||
2. **`glossary.md`** — Human-readable glossary sorted alphabetically. For each concept: one-paragraph definition drawn from the papers, paper of origin, current status (active/superseded/open question).
|
||||
|
||||
3. **`concept_map.mermaid`** — Mermaid diagram showing concept relationships (which concepts depend on, extend, or contradict which other concepts). Separate from the paper-level graph in C1 — this is concept-to-concept, not paper-to-paper.
|
||||
|
||||
4. **`build_index.py`** — The Python script that generates all of the above from the paper files. Should be re-runnable as new papers are added. Read the markdown files, extract concepts by pattern matching (bold terms, section headers, named frameworks), cross-reference, and output structured data.
|
||||
|
||||
**Extraction heuristics:**
|
||||
- Bold terms on first use often indicate named concepts
|
||||
- Section headers are often concept names
|
||||
- Table rows in papers 007 and 008 define mappings
|
||||
- "Relationship to Prior Papers" sections link concepts across papers
|
||||
- The HANDOFF.md "Key Ideas" sections are a good seed list
|
||||
|
||||
---
|
||||
|
||||
## Task C3: Research Integrator
|
||||
**Status:** DONE
|
||||
**Claimed by:** Codex-GPT5
|
||||
**Output:** `tools/integrator/`
|
||||
|
||||
Build a tool that processes the Gemini research output files (from `research/`) and produces a unified research digest. **Note:** The research files may not exist yet (Gemini agents are still running). Build the tool so it works on whatever files exist at runtime, and can be re-run later when all 6 are complete.
|
||||
|
||||
**Deliverables:**
|
||||
|
||||
1. **`integrate.py`** — Python script that:
|
||||
- Reads all `research/*.md` files
|
||||
- Extracts all named scholars/authors mentioned across files
|
||||
- Deduplicates scholars appearing in multiple research files and consolidates what each research file says about them
|
||||
- Extracts all book/paper titles and builds a unified bibliography
|
||||
- Identifies contradictions (where one research file's evidence conflicts with another's)
|
||||
- Maps research findings to the open questions from Paper 008's "Open Questions for Paper 009" section
|
||||
- Outputs structured results
|
||||
|
||||
2. **`digest.md`** — Generated output (from running integrate.py on whatever research files exist):
|
||||
- **Scholars by frequency** — who appears most across the research, suggesting central importance
|
||||
- **Unified bibliography** — every source mentioned, deduplicated, sorted by relevance
|
||||
- **Contradiction report** — where research files disagree or present conflicting evidence
|
||||
- **Paper 009 coverage map** — which open questions from 008 got the most supporting material, which got the least (research gaps)
|
||||
- **Strongest challenges** — the most threatening counterarguments found across all research files
|
||||
|
||||
3. **`009_outline_suggestion.md`** — Auto-generated suggested outline for Paper 009 based on:
|
||||
- Which open questions have the most research material
|
||||
- Which new themes emerged from the research that weren't in the original open questions
|
||||
- Which counterarguments are strong enough to require direct engagement
|
||||
|
||||
**Design notes:**
|
||||
- Parse markdown with regex or a lightweight parser — don't require a markdown AST library
|
||||
- Be generous with extraction — false positives are better than missed findings
|
||||
- The script should work with 1 research file or all 6
|
||||
- Print progress to stdout so the user can see what it found
|
||||
@@ -0,0 +1,106 @@
|
||||
# Paper 009 Editorial Brief
|
||||
|
||||
This brief translates the generated tooling outputs into a drafting plan for Paper 009.
|
||||
|
||||
## What Paper 009 Has To Do
|
||||
|
||||
Paper 009 is the first paper in the series that cannot rely mainly on structural diagnosis. Papers 001-008 established:
|
||||
|
||||
- vibe coding as a social-cognitive practice
|
||||
- AI-driven cognitive surplus and its unequal distribution
|
||||
- the rebuttal and revision cycle that tightened the early claims
|
||||
- the feedback loop between human collaboration and model displacement
|
||||
- the ratchet argument for why dependencies do not reverse
|
||||
- the knowledge unification / identity problem at the end of the chain
|
||||
|
||||
That means Paper 009 has to shift from diagnosis to adjudication.
|
||||
|
||||
It needs to do three things:
|
||||
|
||||
1. State which claims in the series are actually falsifiable, and how.
|
||||
2. Answer Seth's practical question without retreating into vague self-help.
|
||||
3. Put concrete limits, timelines, or threshold conditions on the series' largest claims.
|
||||
|
||||
## Recommended Core Sequence
|
||||
|
||||
The strongest sequence is:
|
||||
|
||||
1. Falsifiability and boundary conditions
|
||||
2. Identity and continuity
|
||||
3. Practical guidance for individuals
|
||||
4. The cheating frame
|
||||
5. Timeline and threshold predictions
|
||||
|
||||
Reason:
|
||||
|
||||
- Q1 is the legitimacy gate. If the paper does not answer the falsifiability problem early, the rest reads as elegant pattern-matching.
|
||||
- Q2 is the best-supported question in the research and the clearest continuation of Paper 008.
|
||||
- Q3 is the biggest unmet promise in the series. It should not be deferred again.
|
||||
- Q4 works better after identity and practice are on the table; then "cheating" can be judged rather than merely redescribed.
|
||||
- Q5 is weakest evidentially and should be framed honestly as threshold estimates, not prophecy.
|
||||
|
||||
## Claims Worth Defending
|
||||
|
||||
These are the strongest surviving claims across the tools and research:
|
||||
|
||||
- The ratchet thesis is strongest when framed as path dependence plus biological / infrastructural adaptation, not as absolute determinism.
|
||||
- The unification thesis is strongest as a claim about reducing fragmentation of access and coordination, not as proof that AI genuinely "understands."
|
||||
- The identity problem is best treated through continuity vs essentialist vs pragmatic survival, with the paper forced to choose or rank them.
|
||||
- Practical individual advice should be built around asymmetric preparation:
|
||||
maintain non-delegated judgment, use AI aggressively where leverage compounds, and preserve fallback skills where dependency risk is highest.
|
||||
|
||||
## Claims That Need Narrowing
|
||||
|
||||
- "Dependencies don't reverse" should be narrowed to foundational, load-bearing dependencies after threshold crossing.
|
||||
- "AI unifies knowledge" should be narrowed to operational unification unless the paper can defeat the stochastic parrots objection directly.
|
||||
- Teleological / retrocausal language should be used carefully or explicitly bracketed as metaphysical framing rather than empirical proof.
|
||||
- "Cognitive atrophy" should remain weaker than "cognitive preference shift" unless new evidence is introduced.
|
||||
|
||||
## Counterarguments That Must Be Addressed Explicitly
|
||||
|
||||
- Unfalsifiability:
|
||||
define what would count as disconfirming evidence for ratchet and unification claims.
|
||||
- Stochastic parrots / token mimicry:
|
||||
explain whether pattern integration without semantic grounding is enough for the series' thesis.
|
||||
- Lossy compression:
|
||||
admit that each unification step may broaden access while thinning local depth.
|
||||
- Agency against determinism:
|
||||
use Amish / China / Feenberg-style cases to show the paper understands boundary conditions, even if it still argues that large-scale reversal is rare.
|
||||
- Elasticity vs permanent atrophy:
|
||||
distinguish reversible offloading from durable infrastructural dependence.
|
||||
|
||||
## What The Paper Should Actually Say To An Individual
|
||||
|
||||
This is the minimum viable practical answer the series now owes:
|
||||
|
||||
- Build judgment, not just throughput.
|
||||
- Offload execution before you offload evaluation.
|
||||
- Preserve at least one non-AI path through any domain that would be catastrophic to lose.
|
||||
- Treat AI skill as transitional leverage, not permanent identity.
|
||||
- Build on open systems where possible, because dependency concentration is a political risk, not just a technical one.
|
||||
|
||||
That advice is consistent with Papers 004-008 and does not require pretending that opting out is realistic.
|
||||
|
||||
## Where The Research Is Strongest
|
||||
|
||||
- Identity / transhumanism / continuity
|
||||
- Falsifiability and path dependence
|
||||
- Historical precedents for knowledge centralization and unification
|
||||
- Allegorical warning traditions and why they fail behaviorally
|
||||
|
||||
## Where New Writing Is Still Required
|
||||
|
||||
- A concrete falsifiability framework in the paper's own language
|
||||
- A practical, non-generic decision framework for individuals
|
||||
- Honest timeline estimates with threshold criteria
|
||||
- A clear statement on whether the series endorses continuity, essentialism, or pragmatism as its final answer to the Ship of Theseus problem
|
||||
|
||||
## Recommended Drafting Rule
|
||||
|
||||
Every major section should end with:
|
||||
|
||||
- what the series can now claim confidently
|
||||
- what remains uncertain
|
||||
- what would change the author's mind
|
||||
|
||||
If Paper 009 does that, it becomes the paper that turns the series from an evocative thesis sequence into a defensible philosophical project.
|
||||
@@ -0,0 +1,62 @@
|
||||
# VIBECODE-THEORY Tools Summary
|
||||
|
||||
This directory now contains the three structural deliverable sets from `CODEX_TASKS.md`:
|
||||
|
||||
- `cross-references/` maps document-to-document relationships across Papers 001-008 and the allegories.
|
||||
- `concept-index/` builds a reusable glossary and concept graph for the series' named frameworks.
|
||||
- `integrator/` consolidates Gemini research into a Paper 009 planning package.
|
||||
|
||||
## What Exists
|
||||
|
||||
### `cross-references/`
|
||||
|
||||
- `build_cross_references.py` regenerates the cross-reference artifacts.
|
||||
- `graph.json` contains 16 nodes and 67 edges spanning the eight papers and eight allegories.
|
||||
- `graph.mermaid` renders the document-level relationship graph.
|
||||
- `dangling_threads.md` lists unresolved questions that remain live after Paper 008.
|
||||
- `concept_flow.md` traces major concepts through introduction, revision, challenge, and current standing.
|
||||
|
||||
### `concept-index/`
|
||||
|
||||
- `build_index.py` regenerates the concept index artifacts.
|
||||
- `index.json` contains 47 curated concepts with origin, definition, revision, challenge, and reference metadata.
|
||||
- `glossary.md` is the human-readable glossary.
|
||||
- `concept_map.mermaid` is the concept-to-concept relationship graph.
|
||||
|
||||
### `integrator/`
|
||||
|
||||
- `integrate.py` regenerates the research synthesis from `research/*.md`.
|
||||
- `integrated.json` is the structured merged research output.
|
||||
- `digest.md` contains the scholar frequency table, bibliography, contradiction report, Paper 009 coverage map, and strongest challenges.
|
||||
- `009_outline_suggestion.md` proposes a research-backed sequence for Paper 009.
|
||||
|
||||
## Strongest Takeaways
|
||||
|
||||
- The series has a clear structural arc: social skill -> surplus -> rebuttal -> revision -> feedback loop -> ratchet -> unification / identity.
|
||||
- The main unresolved Paper 009 questions are already visible in `cross-references/dangling_threads.md` and are reinforced by `integrator/digest.md`.
|
||||
- The research synthesis points most strongly at Q2 (identity) and Q4 (the cheating frame) as the most supported Paper 009 sections, while Q3 (practical individual guidance) and Q5 (timeline) remain weakest and will require more original argument.
|
||||
- The concept glossary is usable as a reference layer for drafting, navigation, or future tooling.
|
||||
|
||||
## Recommended Starting Points
|
||||
|
||||
- For series structure: read `cross-references/concept_flow.md`.
|
||||
- For terminology normalization: read `concept-index/glossary.md`.
|
||||
- For Paper 009 planning: read `integrator/digest.md` and `integrator/009_outline_suggestion.md`.
|
||||
- For visualization: render `cross-references/graph.mermaid` and `concept-index/concept_map.mermaid`.
|
||||
|
||||
## Caveats
|
||||
|
||||
- These outputs are machine-generated analytical aids, not final prose. They are useful for planning and navigation, but they still deserve human judgment before being quoted as authoritative interpretations.
|
||||
- `concept-index/` is a hybrid approach: source-driven definitions with a curated concept registry. That makes it cleaner than unconstrained extraction, but it is not an ontology inferred fully automatically.
|
||||
- `cross-references/` is good at explicit links and repeated concept propagation, but some edge labels are heuristic.
|
||||
- `integrator/` is only as strong as the current research markdown. If Gemini research files are revised, rerun `integrate.py`.
|
||||
|
||||
## Regeneration
|
||||
|
||||
Run these from the repo root:
|
||||
|
||||
```bash
|
||||
python3 tools/cross-references/build_cross_references.py
|
||||
python3 tools/concept-index/build_index.py
|
||||
python3 tools/integrator/integrate.py
|
||||
```
|
||||
@@ -0,0 +1,558 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build a concept index and glossary for the VIBECODE-THEORY corpus."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
OUT_DIR = Path(__file__).resolve().parent
|
||||
|
||||
|
||||
@dataclass
|
||||
class Document:
|
||||
doc_id: str
|
||||
title: str
|
||||
path: Path
|
||||
text: str
|
||||
supersedes: str | None
|
||||
|
||||
|
||||
CONCEPTS = [
|
||||
{
|
||||
"name": "Vibe Coding",
|
||||
"aliases": ["vibe coding"],
|
||||
"introduced_in": "001",
|
||||
"status": "active",
|
||||
"related_concepts": ["Social-Cognitive Framework", "Mental Model Accuracy", "Meta-Skill Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Social-Cognitive Framework",
|
||||
"aliases": ["social-cognitive framework", "vibe coding as social skill", "social-cognitive processes"],
|
||||
"introduced_in": "004",
|
||||
"status": "active",
|
||||
"related_concepts": ["Vibe Coding", "Mental Model Accuracy", "Adaptive Communication", "Collaboration Management"],
|
||||
},
|
||||
{
|
||||
"name": "Mental Model Accuracy",
|
||||
"aliases": ["mental model accuracy", "mental model"],
|
||||
"introduced_in": "001",
|
||||
"status": "active",
|
||||
"related_concepts": ["Social-Cognitive Framework", "Adaptive Communication", "Collaboration Management"],
|
||||
},
|
||||
{
|
||||
"name": "Adaptive Communication",
|
||||
"aliases": ["adaptive communication", "constraint calibration", "register matching"],
|
||||
"introduced_in": "001",
|
||||
"status": "active",
|
||||
"related_concepts": ["Social-Cognitive Framework", "Mental Model Accuracy", "Collaboration Management"],
|
||||
},
|
||||
{
|
||||
"name": "Collaboration Management",
|
||||
"aliases": ["collaboration management", "task decomposition", "trust calibration", "recovery"],
|
||||
"introduced_in": "001",
|
||||
"status": "active",
|
||||
"related_concepts": ["Social-Cognitive Framework", "Adaptive Communication", "Technical Foundation"],
|
||||
},
|
||||
{
|
||||
"name": "Technical Foundation",
|
||||
"aliases": ["technical foundation", "technical expertise"],
|
||||
"introduced_in": "001",
|
||||
"status": "active",
|
||||
"related_concepts": ["Vibe Coding", "Collaboration Management", "Meta-Skill Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Neurodivergence Note",
|
||||
"aliases": ["neurodivergence note", "neurodivergence hypothesis"],
|
||||
"introduced_in": "001",
|
||||
"status": "open question",
|
||||
"related_concepts": ["Social-Cognitive Framework"],
|
||||
},
|
||||
{
|
||||
"name": "Shelf-Life Problem",
|
||||
"aliases": ["shelf-life problem", "shelf life problem"],
|
||||
"introduced_in": "003",
|
||||
"status": "active",
|
||||
"related_concepts": ["Meta-Skill Argument", "Infrastructure Threshold"],
|
||||
},
|
||||
{
|
||||
"name": "Meta-Skill Argument",
|
||||
"aliases": ["meta-skill argument", "meta-skill"],
|
||||
"introduced_in": "004",
|
||||
"status": "active",
|
||||
"related_concepts": ["Shelf-Life Problem", "Vibe Coding", "Social-Cognitive Framework"],
|
||||
},
|
||||
{
|
||||
"name": "Cognitive Surplus",
|
||||
"aliases": ["cognitive surplus", "surplus of cognition", "the cognitive surplus"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Agricultural Parallel", "Cognition as a Commodity", "Automation Spiral"],
|
||||
},
|
||||
{
|
||||
"name": "Agricultural Parallel",
|
||||
"aliases": ["agricultural parallel", "agricultural analogy"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Cognitive Surplus", "Green Revolution", "Feudal Internet", "Dependency Trap"],
|
||||
},
|
||||
{
|
||||
"name": "Dual Cognition Problem",
|
||||
"aliases": ["dual cognition problem", "the dual cognition problem"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Cognitive Preference Shift", "Cognitive Atrophy", "Cognitive Surplus"],
|
||||
},
|
||||
{
|
||||
"name": "Cognitive Atrophy",
|
||||
"aliases": ["cognitive atrophy", "capability loss"],
|
||||
"introduced_in": "002",
|
||||
"status": "open question",
|
||||
"related_concepts": ["Dual Cognition Problem", "Cognitive Preference Shift", "Biological Ratchet"],
|
||||
},
|
||||
{
|
||||
"name": "Green Revolution",
|
||||
"aliases": ["green revolution"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Agricultural Parallel", "Feudal Internet"],
|
||||
},
|
||||
{
|
||||
"name": "Feudal Internet",
|
||||
"aliases": ["feudal internet"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Agricultural Parallel", "Dependency Trap", "Cognition as a Commodity"],
|
||||
},
|
||||
{
|
||||
"name": "Dependency Trap",
|
||||
"aliases": ["dependency trap", "future 3: the dependency trap"],
|
||||
"introduced_in": "002",
|
||||
"status": "active",
|
||||
"related_concepts": ["Feudal Internet", "Cognitive Atrophy", "Y2K Parallel"],
|
||||
},
|
||||
{
|
||||
"name": "Automation Spiral",
|
||||
"aliases": ["automation spiral"],
|
||||
"introduced_in": "003",
|
||||
"status": "active",
|
||||
"related_concepts": ["Cognitive Surplus", "Feedback Loop", "Master-Apprentice Parallel"],
|
||||
},
|
||||
{
|
||||
"name": "Cognitive Preference Shift",
|
||||
"aliases": ["cognitive preference shift", "preference shift"],
|
||||
"introduced_in": "003",
|
||||
"status": "active",
|
||||
"related_concepts": ["Dual Cognition Problem", "Cognitive Atrophy", "Biological Ratchet"],
|
||||
},
|
||||
{
|
||||
"name": "Cognition as a Commodity",
|
||||
"aliases": ["cognition as a commodity", "cognition-as-commodity framing"],
|
||||
"introduced_in": "005",
|
||||
"status": "active",
|
||||
"related_concepts": ["Cognitive Surplus", "Feudal Internet", "Information/Cognition Resource Hierarchy"],
|
||||
},
|
||||
{
|
||||
"name": "Y2K Parallel",
|
||||
"aliases": ["y2k parallel", "ai y2k moment", "y2k moment"],
|
||||
"introduced_in": "005",
|
||||
"status": "active",
|
||||
"related_concepts": ["Dependency Trap", "Infrastructure Threshold", "Cognitive Surplus"],
|
||||
},
|
||||
{
|
||||
"name": "Information/Cognition Resource Hierarchy",
|
||||
"aliases": ["information and cognition as resources", "resource hierarchy"],
|
||||
"introduced_in": "005",
|
||||
"status": "active",
|
||||
"related_concepts": ["Cognition as a Commodity", "Knowledge Unification"],
|
||||
},
|
||||
{
|
||||
"name": "Feedback Loop",
|
||||
"aliases": ["feedback loop"],
|
||||
"introduced_in": "006",
|
||||
"status": "active",
|
||||
"related_concepts": ["Automation Spiral", "Master-Apprentice Parallel", "Niche Construction"],
|
||||
},
|
||||
{
|
||||
"name": "Master-Apprentice Parallel",
|
||||
"aliases": ["master-apprentice parallel", "master-apprentice relationship"],
|
||||
"introduced_in": "006",
|
||||
"status": "active",
|
||||
"related_concepts": ["Feedback Loop", "Automation Spiral", "The Golem"],
|
||||
},
|
||||
{
|
||||
"name": "Niche Construction",
|
||||
"aliases": ["niche construction"],
|
||||
"introduced_in": "006",
|
||||
"status": "active",
|
||||
"related_concepts": ["Feedback Loop", "Recursion Observation"],
|
||||
},
|
||||
{
|
||||
"name": "Theological Thread",
|
||||
"aliases": ["theological thread"],
|
||||
"introduced_in": "006",
|
||||
"status": "active",
|
||||
"related_concepts": ["Prometheus", "Knowledge Unification", "Recursion Observation"],
|
||||
},
|
||||
{
|
||||
"name": "Recursion Observation",
|
||||
"aliases": ["recursion observation", "cosmological → biological → linguistic → computational"],
|
||||
"introduced_in": "006",
|
||||
"status": "open question",
|
||||
"related_concepts": ["Theological Thread", "Niche Construction", "Knowledge Unification"],
|
||||
},
|
||||
{
|
||||
"name": "Infrastructure Threshold",
|
||||
"aliases": ["infrastructure threshold"],
|
||||
"introduced_in": "007",
|
||||
"status": "active",
|
||||
"related_concepts": ["Biological Ratchet", "Premature Dependencies", "Y2K Parallel"],
|
||||
},
|
||||
{
|
||||
"name": "Premature Dependencies",
|
||||
"aliases": ["premature dependencies", "dependency waiting for its enabling technology"],
|
||||
"introduced_in": "007",
|
||||
"status": "active",
|
||||
"related_concepts": ["Infrastructure Threshold", "Biological Ratchet"],
|
||||
},
|
||||
{
|
||||
"name": "Biological Ratchet",
|
||||
"aliases": ["biological ratchet", "dependency ratchet", "ratchet thesis"],
|
||||
"introduced_in": "007",
|
||||
"status": "active",
|
||||
"related_concepts": ["Infrastructure Threshold", "Cognitive Preference Shift", "Knowledge Unification"],
|
||||
},
|
||||
{
|
||||
"name": "Dependency Chain",
|
||||
"aliases": ["dependency chain"],
|
||||
"introduced_in": "007",
|
||||
"status": "active",
|
||||
"related_concepts": ["Biological Ratchet", "Knowledge Unification", "Cheating Frame"],
|
||||
},
|
||||
{
|
||||
"name": "Knowledge Unification",
|
||||
"aliases": ["knowledge unification", "unification thesis", "unification of human knowledge", "the dependency chain as knowledge unification"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Dependency Chain", "Singularity as Compilation", "Integration Layer"],
|
||||
},
|
||||
{
|
||||
"name": "Singularity as Compilation",
|
||||
"aliases": ["singularity as compilation", "compilation not transcendence", "compilation, not transcendence"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Knowledge Unification", "Integration Layer", "Cheating Frame"],
|
||||
},
|
||||
{
|
||||
"name": "Integration Layer",
|
||||
"aliases": ["integration layer"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Knowledge Unification", "Singularity as Compilation", "Existential Purpose of the Chain"],
|
||||
},
|
||||
{
|
||||
"name": "Ship of Theseus Problem",
|
||||
"aliases": ["ship of theseus problem", "identity problem", "species identity problem", "the identity problem"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Continuity Argument", "Identity Argument", "Pragmatic Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Continuity Argument",
|
||||
"aliases": ["continuity argument", "the continuity argument"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Ship of Theseus Problem", "Identity Argument", "Pragmatic Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Identity Argument",
|
||||
"aliases": ["identity argument", "essentialist", "the identity argument"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Ship of Theseus Problem", "Continuity Argument", "Pragmatic Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Pragmatic Argument",
|
||||
"aliases": ["pragmatic argument", "the pragmatic argument"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Ship of Theseus Problem", "Continuity Argument", "Identity Argument"],
|
||||
},
|
||||
{
|
||||
"name": "Cheating Frame",
|
||||
"aliases": ["did we cheat", "cheating frame"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Dependency Chain", "Singularity as Compilation", "Existential Purpose of the Chain"],
|
||||
},
|
||||
{
|
||||
"name": "Existential Purpose of the Chain",
|
||||
"aliases": ["existential purpose of the dependency chain", "existential purpose", "the existential purpose of the dependency chain"],
|
||||
"introduced_in": "008",
|
||||
"status": "active",
|
||||
"related_concepts": ["Integration Layer", "Cheating Frame", "Knowledge Unification"],
|
||||
},
|
||||
{
|
||||
"name": "Eve's Apple",
|
||||
"aliases": ["eve's apple"],
|
||||
"introduced_in": "eves-apple",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Cognitive Preference Shift", "Dependency Chain"],
|
||||
},
|
||||
{
|
||||
"name": "Pandora's Box",
|
||||
"aliases": ["pandora's box"],
|
||||
"introduced_in": "pandoras-box",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Dependency Chain", "Automation Spiral"],
|
||||
},
|
||||
{
|
||||
"name": "Prometheus",
|
||||
"aliases": ["prometheus"],
|
||||
"introduced_in": "prometheus",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Theological Thread", "Dependency Chain", "Cheating Frame"],
|
||||
},
|
||||
{
|
||||
"name": "Sorcerer's Apprentice",
|
||||
"aliases": ["sorcerer's apprentice"],
|
||||
"introduced_in": "sorcerers-apprentice",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Automation Spiral", "Feedback Loop", "Dependency Chain"],
|
||||
},
|
||||
{
|
||||
"name": "The Golem",
|
||||
"aliases": ["the golem", "golem"],
|
||||
"introduced_in": "the-golem",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Master-Apprentice Parallel", "Dependency Chain"],
|
||||
},
|
||||
{
|
||||
"name": "Faustian Bargain",
|
||||
"aliases": ["faustian bargain", "faust"],
|
||||
"introduced_in": "faust",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Feedback Loop", "Cognitive Preference Shift"],
|
||||
},
|
||||
{
|
||||
"name": "Icarus",
|
||||
"aliases": ["icarus"],
|
||||
"introduced_in": "icarus",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Shelf-Life Problem", "Infrastructure Threshold"],
|
||||
},
|
||||
{
|
||||
"name": "Tower of Babel",
|
||||
"aliases": ["tower of babel", "babel"],
|
||||
"introduced_in": "tower-of-babel",
|
||||
"status": "reference allegory",
|
||||
"related_concepts": ["Dependency Chain", "Knowledge Unification"],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
def clean_text(text: str) -> str:
|
||||
text = text.replace("\r\n", "\n")
|
||||
return text
|
||||
|
||||
|
||||
def load_documents() -> dict[str, Document]:
|
||||
docs: dict[str, Document] = {}
|
||||
for path in sorted(ROOT.glob("00*.md")):
|
||||
text = clean_text(path.read_text(encoding="utf-8"))
|
||||
title_match = re.search(r"^#\s+Paper\s+(\d{3}):\s*(.+)$", text, re.MULTILINE)
|
||||
supersedes_match = re.search(r"^\*\*Supersedes:\*\*\s*Paper\s+(\d{3})", text, re.MULTILINE)
|
||||
if not title_match:
|
||||
continue
|
||||
doc_id = title_match.group(1)
|
||||
docs[doc_id] = Document(
|
||||
doc_id=doc_id,
|
||||
title=title_match.group(2).strip(),
|
||||
path=path,
|
||||
text=text,
|
||||
supersedes=supersedes_match.group(1) if supersedes_match else None,
|
||||
)
|
||||
for path in sorted((ROOT / "allegorical").glob("*.md")):
|
||||
text = clean_text(path.read_text(encoding="utf-8"))
|
||||
title_match = re.search(r"^#\s+(.+)$", text, re.MULTILINE)
|
||||
doc_id = path.stem
|
||||
docs[doc_id] = Document(
|
||||
doc_id=doc_id,
|
||||
title=title_match.group(1).strip() if title_match else path.stem,
|
||||
path=path,
|
||||
text=text,
|
||||
supersedes=None,
|
||||
)
|
||||
return docs
|
||||
|
||||
|
||||
def paragraphs(text: str) -> list[str]:
|
||||
return [p.strip() for p in re.split(r"\n\s*\n", text) if p.strip()]
|
||||
|
||||
|
||||
def sentences(text: str) -> list[str]:
|
||||
normalized = re.sub(r"\s+", " ", text.strip())
|
||||
return [s.strip() for s in re.split(r"(?<=[.!?])\s+", normalized) if s.strip()]
|
||||
|
||||
|
||||
def alias_present(text: str, alias: str) -> bool:
|
||||
pattern = r"\b" + re.escape(alias.lower()) + r"\b"
|
||||
return re.search(pattern, text.lower()) is not None
|
||||
|
||||
|
||||
def extract_section(text: str, heading: str) -> str:
|
||||
pattern = rf"^##+\s+{re.escape(heading)}\s*$"
|
||||
match = re.search(pattern, text, re.MULTILINE | re.IGNORECASE)
|
||||
if not match:
|
||||
return ""
|
||||
start = match.end()
|
||||
next_heading = re.search(r"^##+\s+", text[start:], re.MULTILINE)
|
||||
end = start + next_heading.start() if next_heading else len(text)
|
||||
return text[start:end].strip()
|
||||
|
||||
|
||||
def first_matching_sentence(doc: Document, aliases: list[str]) -> str:
|
||||
for alias in aliases:
|
||||
section = extract_section(doc.text, alias)
|
||||
if section:
|
||||
for paragraph in paragraphs(section):
|
||||
if paragraph.startswith("#"):
|
||||
continue
|
||||
for sentence in sentences(paragraph):
|
||||
if len(sentence) >= 40:
|
||||
return sentence
|
||||
for paragraph in paragraphs(doc.text):
|
||||
if paragraph.startswith("#") or paragraph.startswith("**Authors:**") or paragraph.startswith("**Date:**"):
|
||||
continue
|
||||
for sentence in sentences(paragraph):
|
||||
if any(alias_present(sentence, alias) for alias in aliases) and len(sentence) >= 40:
|
||||
return sentence
|
||||
return "Definition sentence not found in source text."
|
||||
|
||||
|
||||
def find_mentions(docs: dict[str, Document], aliases: list[str]) -> list[str]:
|
||||
refs: list[str] = []
|
||||
for doc_id, doc in docs.items():
|
||||
if any(alias_present(doc.text, alias) for alias in aliases):
|
||||
refs.append(doc_id)
|
||||
return refs
|
||||
|
||||
|
||||
def find_revisions(docs: dict[str, Document], concept: dict, mentions: list[str]) -> list[str]:
|
||||
introduced_in = concept["introduced_in"]
|
||||
revisions: list[str] = []
|
||||
for doc_id in mentions:
|
||||
doc = docs[doc_id]
|
||||
if doc.supersedes == introduced_in:
|
||||
revisions.append(doc_id)
|
||||
return sorted(revisions)
|
||||
|
||||
|
||||
def find_challenges(docs: dict[str, Document], concept: dict, mentions: list[str]) -> list[str]:
|
||||
aliases = [concept["name"]] + concept["aliases"]
|
||||
challenged: list[str] = []
|
||||
for doc_id in mentions:
|
||||
if doc_id == concept["introduced_in"]:
|
||||
continue
|
||||
doc = docs[doc_id]
|
||||
section = extract_section(doc.text, "Relationship to Prior Papers")
|
||||
open_q = extract_section(doc.text, "Open Questions") + "\n" + extract_section(doc.text, "Open Questions for Paper 007") + "\n" + extract_section(doc.text, "Open Questions for Paper 009")
|
||||
corpus = f"{section}\n{open_q}\n{doc.text[:3000]}"
|
||||
if any(alias_present(corpus, alias) for alias in aliases) and re.search(
|
||||
r"challenge|critic|rebuttal|unfalsif|weak|bounded|downgrade|unknown",
|
||||
corpus,
|
||||
re.IGNORECASE,
|
||||
):
|
||||
challenged.append(doc_id)
|
||||
return sorted(set(challenged))
|
||||
|
||||
|
||||
def mermaid_id(name: str) -> str:
|
||||
return "c_" + re.sub(r"[^a-z0-9]+", "_", name.lower()).strip("_")
|
||||
|
||||
|
||||
def build_index() -> dict[str, list[dict]]:
|
||||
docs = load_documents()
|
||||
items: list[dict] = []
|
||||
|
||||
for concept in CONCEPTS:
|
||||
aliases = [concept["name"]] + concept["aliases"]
|
||||
intro_doc = docs[concept["introduced_in"]]
|
||||
mentions = find_mentions(docs, aliases)
|
||||
revised_in = find_revisions(docs, concept, mentions)
|
||||
challenged_in = find_challenges(docs, concept, mentions)
|
||||
referenced_in = [doc_id for doc_id in mentions if doc_id != concept["introduced_in"] and doc_id not in revised_in]
|
||||
definition = first_matching_sentence(intro_doc, aliases)
|
||||
|
||||
items.append(
|
||||
{
|
||||
"name": concept["name"],
|
||||
"aliases": sorted(set(concept["aliases"])),
|
||||
"introduced_in": concept["introduced_in"],
|
||||
"definition": definition,
|
||||
"revised_in": revised_in,
|
||||
"challenged_in": challenged_in,
|
||||
"referenced_in": referenced_in,
|
||||
"status": concept["status"],
|
||||
"related_concepts": concept["related_concepts"],
|
||||
}
|
||||
)
|
||||
|
||||
return {"concepts": items}
|
||||
|
||||
|
||||
def write_glossary(index: dict[str, list[dict]]) -> None:
|
||||
lines = ["# VIBECODE-THEORY Glossary", ""]
|
||||
for item in sorted(index["concepts"], key=lambda x: x["name"].lower()):
|
||||
lines.extend(
|
||||
[
|
||||
f"## {item['name']}",
|
||||
f"Origin: {item['introduced_in']}",
|
||||
f"Status: {item['status']}",
|
||||
f"Aliases: {', '.join(item['aliases']) if item['aliases'] else 'None'}",
|
||||
item["definition"],
|
||||
f"Revised in: {', '.join(item['revised_in']) if item['revised_in'] else 'None'}",
|
||||
f"Challenged in: {', '.join(item['challenged_in']) if item['challenged_in'] else 'None'}",
|
||||
f"Referenced in: {', '.join(item['referenced_in']) if item['referenced_in'] else 'None'}",
|
||||
f"Related concepts: {', '.join(item['related_concepts']) if item['related_concepts'] else 'None'}",
|
||||
"",
|
||||
]
|
||||
)
|
||||
(OUT_DIR / "glossary.md").write_text("\n".join(lines), encoding="utf-8")
|
||||
|
||||
|
||||
def write_mermaid(index: dict[str, list[dict]]) -> None:
|
||||
lines = ["graph TD"]
|
||||
for item in index["concepts"]:
|
||||
lines.append(f' {mermaid_id(item["name"])}["{item["name"]}"]')
|
||||
seen: set[tuple[str, str]] = set()
|
||||
for item in index["concepts"]:
|
||||
for related in item["related_concepts"]:
|
||||
edge = tuple(sorted((item["name"], related)))
|
||||
if edge in seen:
|
||||
continue
|
||||
seen.add(edge)
|
||||
lines.append(
|
||||
f" {mermaid_id(item['name'])} -->|relates to| {mermaid_id(related)}"
|
||||
)
|
||||
(OUT_DIR / "concept_map.mermaid").write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||||
|
||||
|
||||
def main() -> None:
|
||||
index = build_index()
|
||||
(OUT_DIR / "index.json").write_text(json.dumps(index, indent=2) + "\n", encoding="utf-8")
|
||||
write_glossary(index)
|
||||
write_mermaid(index)
|
||||
print(f"Indexed {len(index['concepts'])} concepts.")
|
||||
print(f"Wrote {OUT_DIR / 'index.json'}")
|
||||
print(f"Wrote {OUT_DIR / 'glossary.md'}")
|
||||
print(f"Wrote {OUT_DIR / 'concept_map.mermaid'}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,131 @@
|
||||
graph TD
|
||||
c_vibe_coding["Vibe Coding"]
|
||||
c_social_cognitive_framework["Social-Cognitive Framework"]
|
||||
c_mental_model_accuracy["Mental Model Accuracy"]
|
||||
c_adaptive_communication["Adaptive Communication"]
|
||||
c_collaboration_management["Collaboration Management"]
|
||||
c_technical_foundation["Technical Foundation"]
|
||||
c_neurodivergence_note["Neurodivergence Note"]
|
||||
c_shelf_life_problem["Shelf-Life Problem"]
|
||||
c_meta_skill_argument["Meta-Skill Argument"]
|
||||
c_cognitive_surplus["Cognitive Surplus"]
|
||||
c_agricultural_parallel["Agricultural Parallel"]
|
||||
c_dual_cognition_problem["Dual Cognition Problem"]
|
||||
c_cognitive_atrophy["Cognitive Atrophy"]
|
||||
c_green_revolution["Green Revolution"]
|
||||
c_feudal_internet["Feudal Internet"]
|
||||
c_dependency_trap["Dependency Trap"]
|
||||
c_automation_spiral["Automation Spiral"]
|
||||
c_cognitive_preference_shift["Cognitive Preference Shift"]
|
||||
c_cognition_as_a_commodity["Cognition as a Commodity"]
|
||||
c_y2k_parallel["Y2K Parallel"]
|
||||
c_information_cognition_resource_hierarchy["Information/Cognition Resource Hierarchy"]
|
||||
c_feedback_loop["Feedback Loop"]
|
||||
c_master_apprentice_parallel["Master-Apprentice Parallel"]
|
||||
c_niche_construction["Niche Construction"]
|
||||
c_theological_thread["Theological Thread"]
|
||||
c_recursion_observation["Recursion Observation"]
|
||||
c_infrastructure_threshold["Infrastructure Threshold"]
|
||||
c_premature_dependencies["Premature Dependencies"]
|
||||
c_biological_ratchet["Biological Ratchet"]
|
||||
c_dependency_chain["Dependency Chain"]
|
||||
c_knowledge_unification["Knowledge Unification"]
|
||||
c_singularity_as_compilation["Singularity as Compilation"]
|
||||
c_integration_layer["Integration Layer"]
|
||||
c_ship_of_theseus_problem["Ship of Theseus Problem"]
|
||||
c_continuity_argument["Continuity Argument"]
|
||||
c_identity_argument["Identity Argument"]
|
||||
c_pragmatic_argument["Pragmatic Argument"]
|
||||
c_cheating_frame["Cheating Frame"]
|
||||
c_existential_purpose_of_the_chain["Existential Purpose of the Chain"]
|
||||
c_eve_s_apple["Eve's Apple"]
|
||||
c_pandora_s_box["Pandora's Box"]
|
||||
c_prometheus["Prometheus"]
|
||||
c_sorcerer_s_apprentice["Sorcerer's Apprentice"]
|
||||
c_the_golem["The Golem"]
|
||||
c_faustian_bargain["Faustian Bargain"]
|
||||
c_icarus["Icarus"]
|
||||
c_tower_of_babel["Tower of Babel"]
|
||||
c_vibe_coding -->|relates to| c_social_cognitive_framework
|
||||
c_vibe_coding -->|relates to| c_mental_model_accuracy
|
||||
c_vibe_coding -->|relates to| c_meta_skill_argument
|
||||
c_social_cognitive_framework -->|relates to| c_mental_model_accuracy
|
||||
c_social_cognitive_framework -->|relates to| c_adaptive_communication
|
||||
c_social_cognitive_framework -->|relates to| c_collaboration_management
|
||||
c_mental_model_accuracy -->|relates to| c_adaptive_communication
|
||||
c_mental_model_accuracy -->|relates to| c_collaboration_management
|
||||
c_adaptive_communication -->|relates to| c_collaboration_management
|
||||
c_collaboration_management -->|relates to| c_technical_foundation
|
||||
c_technical_foundation -->|relates to| c_vibe_coding
|
||||
c_technical_foundation -->|relates to| c_meta_skill_argument
|
||||
c_neurodivergence_note -->|relates to| c_social_cognitive_framework
|
||||
c_shelf_life_problem -->|relates to| c_meta_skill_argument
|
||||
c_shelf_life_problem -->|relates to| c_infrastructure_threshold
|
||||
c_meta_skill_argument -->|relates to| c_social_cognitive_framework
|
||||
c_cognitive_surplus -->|relates to| c_agricultural_parallel
|
||||
c_cognitive_surplus -->|relates to| c_cognition_as_a_commodity
|
||||
c_cognitive_surplus -->|relates to| c_automation_spiral
|
||||
c_agricultural_parallel -->|relates to| c_green_revolution
|
||||
c_agricultural_parallel -->|relates to| c_feudal_internet
|
||||
c_agricultural_parallel -->|relates to| c_dependency_trap
|
||||
c_dual_cognition_problem -->|relates to| c_cognitive_preference_shift
|
||||
c_dual_cognition_problem -->|relates to| c_cognitive_atrophy
|
||||
c_dual_cognition_problem -->|relates to| c_cognitive_surplus
|
||||
c_cognitive_atrophy -->|relates to| c_cognitive_preference_shift
|
||||
c_cognitive_atrophy -->|relates to| c_biological_ratchet
|
||||
c_green_revolution -->|relates to| c_feudal_internet
|
||||
c_feudal_internet -->|relates to| c_dependency_trap
|
||||
c_feudal_internet -->|relates to| c_cognition_as_a_commodity
|
||||
c_dependency_trap -->|relates to| c_cognitive_atrophy
|
||||
c_dependency_trap -->|relates to| c_y2k_parallel
|
||||
c_automation_spiral -->|relates to| c_feedback_loop
|
||||
c_automation_spiral -->|relates to| c_master_apprentice_parallel
|
||||
c_cognitive_preference_shift -->|relates to| c_biological_ratchet
|
||||
c_cognition_as_a_commodity -->|relates to| c_information_cognition_resource_hierarchy
|
||||
c_y2k_parallel -->|relates to| c_infrastructure_threshold
|
||||
c_y2k_parallel -->|relates to| c_cognitive_surplus
|
||||
c_information_cognition_resource_hierarchy -->|relates to| c_knowledge_unification
|
||||
c_feedback_loop -->|relates to| c_master_apprentice_parallel
|
||||
c_feedback_loop -->|relates to| c_niche_construction
|
||||
c_master_apprentice_parallel -->|relates to| c_the_golem
|
||||
c_niche_construction -->|relates to| c_recursion_observation
|
||||
c_theological_thread -->|relates to| c_prometheus
|
||||
c_theological_thread -->|relates to| c_knowledge_unification
|
||||
c_theological_thread -->|relates to| c_recursion_observation
|
||||
c_recursion_observation -->|relates to| c_knowledge_unification
|
||||
c_infrastructure_threshold -->|relates to| c_biological_ratchet
|
||||
c_infrastructure_threshold -->|relates to| c_premature_dependencies
|
||||
c_premature_dependencies -->|relates to| c_biological_ratchet
|
||||
c_biological_ratchet -->|relates to| c_knowledge_unification
|
||||
c_dependency_chain -->|relates to| c_biological_ratchet
|
||||
c_dependency_chain -->|relates to| c_knowledge_unification
|
||||
c_dependency_chain -->|relates to| c_cheating_frame
|
||||
c_knowledge_unification -->|relates to| c_singularity_as_compilation
|
||||
c_knowledge_unification -->|relates to| c_integration_layer
|
||||
c_singularity_as_compilation -->|relates to| c_integration_layer
|
||||
c_singularity_as_compilation -->|relates to| c_cheating_frame
|
||||
c_integration_layer -->|relates to| c_existential_purpose_of_the_chain
|
||||
c_ship_of_theseus_problem -->|relates to| c_continuity_argument
|
||||
c_ship_of_theseus_problem -->|relates to| c_identity_argument
|
||||
c_ship_of_theseus_problem -->|relates to| c_pragmatic_argument
|
||||
c_continuity_argument -->|relates to| c_identity_argument
|
||||
c_continuity_argument -->|relates to| c_pragmatic_argument
|
||||
c_identity_argument -->|relates to| c_pragmatic_argument
|
||||
c_cheating_frame -->|relates to| c_existential_purpose_of_the_chain
|
||||
c_existential_purpose_of_the_chain -->|relates to| c_knowledge_unification
|
||||
c_eve_s_apple -->|relates to| c_cognitive_preference_shift
|
||||
c_eve_s_apple -->|relates to| c_dependency_chain
|
||||
c_pandora_s_box -->|relates to| c_dependency_chain
|
||||
c_pandora_s_box -->|relates to| c_automation_spiral
|
||||
c_prometheus -->|relates to| c_dependency_chain
|
||||
c_prometheus -->|relates to| c_cheating_frame
|
||||
c_sorcerer_s_apprentice -->|relates to| c_automation_spiral
|
||||
c_sorcerer_s_apprentice -->|relates to| c_feedback_loop
|
||||
c_sorcerer_s_apprentice -->|relates to| c_dependency_chain
|
||||
c_the_golem -->|relates to| c_dependency_chain
|
||||
c_faustian_bargain -->|relates to| c_feedback_loop
|
||||
c_faustian_bargain -->|relates to| c_cognitive_preference_shift
|
||||
c_icarus -->|relates to| c_shelf_life_problem
|
||||
c_icarus -->|relates to| c_infrastructure_threshold
|
||||
c_tower_of_babel -->|relates to| c_dependency_chain
|
||||
c_tower_of_babel -->|relates to| c_knowledge_unification
|
||||
@@ -0,0 +1,471 @@
|
||||
# VIBECODE-THEORY Glossary
|
||||
|
||||
## Adaptive Communication
|
||||
Origin: 001
|
||||
Status: active
|
||||
Aliases: adaptive communication, constraint calibration, register matching
|
||||
- **Constraint calibration** — knowing when to specify tightly and when to leave room.
|
||||
Revised in: 004
|
||||
Challenged in: 003
|
||||
Referenced in: 003
|
||||
Related concepts: Social-Cognitive Framework, Mental Model Accuracy, Collaboration Management
|
||||
|
||||
## Agricultural Parallel
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: agricultural analogy, agricultural parallel
|
||||
The agricultural parallel: early farmers gained knowledge of seasons, irrigation, selective breeding, and storage that foragers didn't have.
|
||||
Revised in: 005
|
||||
Challenged in: 005, 006, 008
|
||||
Referenced in: 003, 006, 008
|
||||
Related concepts: Cognitive Surplus, Green Revolution, Feudal Internet, Dependency Trap
|
||||
|
||||
## Automation Spiral
|
||||
Origin: 003
|
||||
Status: active
|
||||
Aliases: automation spiral
|
||||
The Dependency Trap is "humans can't function without AI." The Automation Spiral is "AI functions without humans." The Dependency Trap still needs people in the loop, just helpless ones.
|
||||
Revised in: None
|
||||
Challenged in: 005, 006, 008
|
||||
Referenced in: 005, 006, 007, 008, sorcerers-apprentice
|
||||
Related concepts: Cognitive Surplus, Feedback Loop, Master-Apprentice Parallel
|
||||
|
||||
## Biological Ratchet
|
||||
Origin: 007
|
||||
Status: active
|
||||
Aliases: biological ratchet, dependency ratchet, ratchet thesis
|
||||
They outcompete organisms that maintain redundant internal capacity "just in case." The dependency ratchet isn't a bug — it's the core mechanism by which complexity increases.
|
||||
Revised in: None
|
||||
Challenged in: 008
|
||||
Referenced in: 008
|
||||
Related concepts: Infrastructure Threshold, Cognitive Preference Shift, Knowledge Unification
|
||||
|
||||
## Cheating Frame
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: cheating frame, did we cheat
|
||||
The question "did we cheat?" assumes there's a version of the game where we don't.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Dependency Chain, Singularity as Compilation, Existential Purpose of the Chain
|
||||
|
||||
## Cognition as a Commodity
|
||||
Origin: 005
|
||||
Status: active
|
||||
Aliases: cognition as a commodity, cognition-as-commodity framing
|
||||
This revision does three things: stress-tests the agricultural analogy and draws its limits, adds a concrete economic mechanism (cognition as a commodity with a collapsing price), introduces the Y2K parallel for the dependency argument, and adds the missing fourth future.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Cognitive Surplus, Feudal Internet, Information/Cognition Resource Hierarchy
|
||||
|
||||
## Cognitive Atrophy
|
||||
Origin: 002
|
||||
Status: open question
|
||||
Aliases: capability loss, cognitive atrophy
|
||||
**The pessimistic case:** Cognitive atrophy accelerates.
|
||||
Revised in: 005
|
||||
Challenged in: 003, 005
|
||||
Referenced in: 003
|
||||
Related concepts: Dual Cognition Problem, Cognitive Preference Shift, Biological Ratchet
|
||||
|
||||
## Cognitive Preference Shift
|
||||
Origin: 003
|
||||
Status: active
|
||||
Aliases: cognitive preference shift, preference shift
|
||||
The paper needs to either find harder evidence or honestly downgrade the claim from "cognitive atrophy is happening" to "we observe a preference shift that *could* lead to atrophy if sustained, but we don't yet have evidence of actual capability loss."
|
||||
Revised in: None
|
||||
Challenged in: 005, 007
|
||||
Referenced in: 005, 007, eves-apple, faust
|
||||
Related concepts: Dual Cognition Problem, Cognitive Atrophy, Biological Ratchet
|
||||
|
||||
## Cognitive Surplus
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: cognitive surplus, surplus of cognition, the cognitive surplus
|
||||
If AI creates a comparable surplus of cognition — where not everyone needs to think through routine problems anymore — the downstream effects won't be "some jobs change." They'll be civilizational.
|
||||
Revised in: 005
|
||||
Challenged in: 004, 005, 006, 007, 008
|
||||
Referenced in: 001, 003, 004, 006, 007, 008, faust
|
||||
Related concepts: Agricultural Parallel, Cognition as a Commodity, Automation Spiral
|
||||
|
||||
## Collaboration Management
|
||||
Origin: 001
|
||||
Status: active
|
||||
Aliases: collaboration management, recovery, task decomposition, trust calibration
|
||||
- **Task decomposition** — breaking work into pieces that are the right size for AI collaboration.
|
||||
Revised in: 004
|
||||
Challenged in: 003
|
||||
Referenced in: 002, 003
|
||||
Related concepts: Social-Cognitive Framework, Adaptive Communication, Technical Foundation
|
||||
|
||||
## Continuity Argument
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: continuity argument, the continuity argument
|
||||
The human who discovered fire isn't the same species as the human who built the internet.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Ship of Theseus Problem, Identity Argument, Pragmatic Argument
|
||||
|
||||
## Dependency Chain
|
||||
Origin: 007
|
||||
Status: active
|
||||
Aliases: dependency chain
|
||||
People went back to light switches — not because light switches are better technology, but because the *complexity of the dependency chain* became its own burden.
|
||||
Revised in: None
|
||||
Challenged in: 008, tower-of-babel
|
||||
Referenced in: 008, eves-apple, faust, icarus, pandoras-box, prometheus, sorcerers-apprentice, the-golem, tower-of-babel
|
||||
Related concepts: Biological Ratchet, Knowledge Unification, Cheating Frame
|
||||
|
||||
## Dependency Trap
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: dependency trap, future 3: the dependency trap
|
||||
Definition sentence not found in source text.
|
||||
Revised in: 005
|
||||
Challenged in: None
|
||||
Referenced in: 003
|
||||
Related concepts: Feudal Internet, Cognitive Atrophy, Y2K Parallel
|
||||
|
||||
## Dual Cognition Problem
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: dual cognition problem, the dual cognition problem
|
||||
Seth reported observing both effects simultaneously in himself:
|
||||
Revised in: 005
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Cognitive Preference Shift, Cognitive Atrophy, Cognitive Surplus
|
||||
|
||||
## Eve's Apple
|
||||
Origin: eves-apple
|
||||
Status: reference allegory
|
||||
Aliases: eve's apple
|
||||
Eve's Apple maps most directly to the **cognitive preference shift** described in Paper 005.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007, icarus, pandoras-box
|
||||
Related concepts: Cognitive Preference Shift, Dependency Chain
|
||||
|
||||
## Existential Purpose of the Chain
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: existential purpose, existential purpose of the dependency chain, the existential purpose of the dependency chain
|
||||
If the dependency chain is a knowledge unification process, does it have a direction?
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Integration Layer, Cheating Frame, Knowledge Unification
|
||||
|
||||
## Faustian Bargain
|
||||
Origin: faust
|
||||
Status: reference allegory
|
||||
Aliases: faust, faustian bargain
|
||||
1592); Johann Wolfgang von Goethe, *Faust* (Part 1: 1808, Part 2: 1832) **Theme:** Trading something essential for knowledge and power — the bargain that seems rational at every step
|
||||
Revised in: None
|
||||
Challenged in: tower-of-babel
|
||||
Referenced in: 007, 008, tower-of-babel
|
||||
Related concepts: Feedback Loop, Cognitive Preference Shift
|
||||
|
||||
## Feedback Loop
|
||||
Origin: 006
|
||||
Status: active
|
||||
Aliases: feedback loop
|
||||
If the feedback loop closes — if AI learns to do vibe coding without vibe coders — then the skill framework is a description of a transitional state, not a permanent one.
|
||||
Revised in: None
|
||||
Challenged in: 007, 008
|
||||
Referenced in: 005, 007, 008
|
||||
Related concepts: Automation Spiral, Master-Apprentice Parallel, Niche Construction
|
||||
|
||||
## Feudal Internet
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: feudal internet
|
||||
Definition sentence not found in source text.
|
||||
Revised in: 005
|
||||
Challenged in: None
|
||||
Referenced in: 003
|
||||
Related concepts: Agricultural Parallel, Dependency Trap, Cognition as a Commodity
|
||||
|
||||
## Green Revolution
|
||||
Origin: 002
|
||||
Status: active
|
||||
Aliases: green revolution
|
||||
**Agricultural parallel:** The 20th-century Green Revolution, where agricultural technology was deliberately distributed to developing nations, dramatically reducing famine.
|
||||
Revised in: 005
|
||||
Challenged in: None
|
||||
Referenced in: 003
|
||||
Related concepts: Agricultural Parallel, Feudal Internet
|
||||
|
||||
## Icarus
|
||||
Origin: icarus
|
||||
Status: reference allegory
|
||||
Aliases: icarus
|
||||
Daedalus, the master craftsman, builds wings of feathers and wax for himself and his son Icarus to escape imprisonment on Crete.
|
||||
Revised in: None
|
||||
Challenged in: tower-of-babel
|
||||
Referenced in: 007, tower-of-babel
|
||||
Related concepts: Shelf-Life Problem, Infrastructure Threshold
|
||||
|
||||
## Identity Argument
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: essentialist, identity argument, the identity argument
|
||||
There's something essentially human — consciousness, subjective experience, mortality, biological embodiment, individual identity — and if you remove enough of those properties, the thing that remains isn't "us" regardless of continuity.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Ship of Theseus Problem, Continuity Argument, Pragmatic Argument
|
||||
|
||||
## Information/Cognition Resource Hierarchy
|
||||
Origin: 005
|
||||
Status: active
|
||||
Aliases: information and cognition as resources, resource hierarchy
|
||||
Seth's hierarchy: "Information is the most valuable resource in the world.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Cognition as a Commodity, Knowledge Unification
|
||||
|
||||
## Infrastructure Threshold
|
||||
Origin: 007
|
||||
Status: active
|
||||
Aliases: infrastructure threshold
|
||||
The question for AI: **has it already crossed the infrastructure threshold, or is it still in the application phase where the ebb-and-flow pattern could pull it back?** The honest answer is that AI is right now in the transition zone.
|
||||
Revised in: None
|
||||
Challenged in: 008
|
||||
Referenced in: 008
|
||||
Related concepts: Biological Ratchet, Premature Dependencies, Y2K Parallel
|
||||
|
||||
## Integration Layer
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: integration layer
|
||||
It's the **integration layer** that makes human cognition collectively useful for the first time in history.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Knowledge Unification, Singularity as Compilation, Existential Purpose of the Chain
|
||||
|
||||
## Knowledge Unification
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: knowledge unification, the dependency chain as knowledge unification, unification of human knowledge, unification thesis
|
||||
The series has described the dependency chain — fire → language → writing → printing → internet → AI — as a sequence of increasing *capability.* Each link enables more than the one before.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Dependency Chain, Singularity as Compilation, Integration Layer
|
||||
|
||||
## Master-Apprentice Parallel
|
||||
Origin: 006
|
||||
Status: active
|
||||
Aliases: master-apprentice parallel, master-apprentice relationship
|
||||
The closest historical parallel is the **master-apprentice relationship** — and it's worth taking seriously, not just as a passing comparison, because the places where it holds and breaks are revealing.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Feedback Loop, Automation Spiral, The Golem
|
||||
|
||||
## Mental Model Accuracy
|
||||
Origin: 001
|
||||
Status: active
|
||||
Aliases: mental model, mental model accuracy
|
||||
The core competency is building and maintaining an accurate *mental model* of the AI as a collaborator — its capabilities, tendencies, failure modes, and dynamic personality.
|
||||
Revised in: 004
|
||||
Challenged in: 003
|
||||
Referenced in: 003
|
||||
Related concepts: Social-Cognitive Framework, Adaptive Communication, Collaboration Management
|
||||
|
||||
## Meta-Skill Argument
|
||||
Origin: 004
|
||||
Status: active
|
||||
Aliases: meta-skill, meta-skill argument
|
||||
The meta-skill of managing the overall collaboration:
|
||||
Revised in: None
|
||||
Challenged in: 006
|
||||
Referenced in: 001, 003, 006, faust, icarus, pandoras-box
|
||||
Related concepts: Shelf-Life Problem, Vibe Coding, Social-Cognitive Framework
|
||||
|
||||
## Neurodivergence Note
|
||||
Origin: 001
|
||||
Status: open question
|
||||
Aliases: neurodivergence hypothesis, neurodivergence note
|
||||
Definition sentence not found in source text.
|
||||
Revised in: 004
|
||||
Challenged in: 003
|
||||
Referenced in: 003
|
||||
Related concepts: Social-Cognitive Framework
|
||||
|
||||
## Niche Construction
|
||||
Origin: 006
|
||||
Status: active
|
||||
Aliases: niche construction
|
||||
There's a concept from evolutionary biology that captures what's happening better than any economic or historical analogy: **niche construction.**
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: pandoras-box
|
||||
Related concepts: Feedback Loop, Recursion Observation
|
||||
|
||||
## Pandora's Box
|
||||
Origin: pandoras-box
|
||||
Status: reference allegory
|
||||
Aliases: pandora's box
|
||||
Pandora's Box identifies a different irreversibility than Eve's Apple: **release, not knowledge.** The problem isn't that Pandora *knows* what's in the box — it's that the contents, once released, cannot be gathered back.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007
|
||||
Related concepts: Dependency Chain, Automation Spiral
|
||||
|
||||
## Pragmatic Argument
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: pragmatic argument, the pragmatic argument
|
||||
The question "is it really us?" is a luxury of beings who currently have the option of surviving as-is.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Ship of Theseus Problem, Continuity Argument, Identity Argument
|
||||
|
||||
## Premature Dependencies
|
||||
Origin: 007
|
||||
Status: active
|
||||
Aliases: dependency waiting for its enabling technology, premature dependencies
|
||||
And it's the most instructive example because it reveals the mechanism: **premature dependencies fail when the complexity cost exceeds the benefit before the technology becomes infrastructure.**
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Infrastructure Threshold, Biological Ratchet
|
||||
|
||||
## Prometheus
|
||||
Origin: prometheus
|
||||
Status: reference allegory
|
||||
Aliases: prometheus
|
||||
700 BCE); Aeschylus, *Prometheus Bound* (c.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007, 008, pandoras-box
|
||||
Related concepts: Theological Thread, Dependency Chain, Cheating Frame
|
||||
|
||||
## Recursion Observation
|
||||
Origin: 006
|
||||
Status: open question
|
||||
Aliases: cosmological → biological → linguistic → computational, recursion observation
|
||||
**Is the recursion observation meaningful or just pattern-matching?** The cosmological → linguistic → computational recursion is aesthetically appealing.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Theological Thread, Niche Construction, Knowledge Unification
|
||||
|
||||
## Shelf-Life Problem
|
||||
Origin: 003
|
||||
Status: active
|
||||
Aliases: shelf life problem, shelf-life problem
|
||||
thesis) and confront the shelf-life problem - Paper 002 needs to stress-test the agricultural analogy's limits, add the missing fourth future, and ground the cognitive atrophy argument in something harder than self-report - Both papers need to engage with the temporal problem: these aren't descriptions of a stable system, they're snapshots of a system in rapid transition
|
||||
Revised in: None
|
||||
Challenged in: 004
|
||||
Referenced in: 004
|
||||
Related concepts: Meta-Skill Argument, Infrastructure Threshold
|
||||
|
||||
## Ship of Theseus Problem
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: identity problem, ship of theseus problem, species identity problem, the identity problem
|
||||
If the dependency chain leads to a unified human-AI intelligence capable of surviving beyond Earth — is that still "us?"
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Continuity Argument, Identity Argument, Pragmatic Argument
|
||||
|
||||
## Singularity as Compilation
|
||||
Origin: 008
|
||||
Status: active
|
||||
Aliases: compilation not transcendence, compilation, not transcendence, singularity as compilation
|
||||
Definition sentence not found in source text.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Knowledge Unification, Integration Layer, Cheating Frame
|
||||
|
||||
## Social-Cognitive Framework
|
||||
Origin: 004
|
||||
Status: active
|
||||
Aliases: social-cognitive framework, social-cognitive processes, vibe coding as social skill
|
||||
**What we propose:** Vibe coding involves significant social-cognitive processes — the same mental machinery used for modeling other minds — applied to AI collaboration.
|
||||
Revised in: None
|
||||
Challenged in: 002, 003, 005, 006
|
||||
Referenced in: 001, 002, 003, 005, 006
|
||||
Related concepts: Vibe Coding, Mental Model Accuracy, Adaptive Communication, Collaboration Management
|
||||
|
||||
## Sorcerer's Apprentice
|
||||
Origin: sorcerers-apprentice
|
||||
Status: reference allegory
|
||||
Aliases: sorcerer's apprentice
|
||||
The Sorcerer's Apprentice identifies the most specific and practical failure mode: **the gap between the ability to start an automated process and the ability to control it.**
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007
|
||||
Related concepts: Automation Spiral, Feedback Loop, Dependency Chain
|
||||
|
||||
## Technical Foundation
|
||||
Origin: 001
|
||||
Status: active
|
||||
Aliases: technical expertise, technical foundation
|
||||
Technical foundation helps enormously, but it's not the differentiator.
|
||||
Revised in: 004
|
||||
Challenged in: 003, 004
|
||||
Referenced in: 003, 006
|
||||
Related concepts: Vibe Coding, Collaboration Management, Meta-Skill Argument
|
||||
|
||||
## The Golem
|
||||
Origin: the-golem
|
||||
Status: reference allegory
|
||||
Aliases: golem, the golem
|
||||
**Source:** Jewish folklore, most prominently the Golem of Prague (Rabbi Judah Loew ben Bezalel, 16th century); earlier references in the Talmud and Sefer Yetzirah **Theme:** Creating a servant from raw materials that serves faithfully until it doesn't — and has no interiority to appeal to
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007
|
||||
Related concepts: Master-Apprentice Parallel, Dependency Chain
|
||||
|
||||
## Theological Thread
|
||||
Origin: 006
|
||||
Status: active
|
||||
Aliases: theological thread
|
||||
Definition sentence not found in source text.
|
||||
Revised in: None
|
||||
Challenged in: 008
|
||||
Referenced in: 007, 008, prometheus
|
||||
Related concepts: Prometheus, Knowledge Unification, Recursion Observation
|
||||
|
||||
## Tower of Babel
|
||||
Origin: tower-of-babel
|
||||
Status: reference allegory
|
||||
Aliases: babel, tower of babel
|
||||
Babel identifies a failure mode the other allegories miss: **the fragmentation of shared understanding as a consequence of — or response to — collective overreach.**
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: 007
|
||||
Related concepts: Dependency Chain, Knowledge Unification
|
||||
|
||||
## Vibe Coding
|
||||
Origin: 001
|
||||
Status: active
|
||||
Aliases: vibe coding
|
||||
The trigger for this paper: one of the authors (Seth) has been vibe coding since January 2026, building a homelab infrastructure with Claude Code across dozens of projects.
|
||||
Revised in: 004
|
||||
Challenged in: 002, 003, 004, 006, 007
|
||||
Referenced in: 002, 003, 005, 006, 007, 008, faust, icarus, prometheus, sorcerers-apprentice, tower-of-babel
|
||||
Related concepts: Social-Cognitive Framework, Mental Model Accuracy, Meta-Skill Argument
|
||||
|
||||
## Y2K Parallel
|
||||
Origin: 005
|
||||
Status: active
|
||||
Aliases: ai y2k moment, y2k moment, y2k parallel
|
||||
This revision does three things: stress-tests the agricultural analogy and draws its limits, adds a concrete economic mechanism (cognition as a commodity with a collapsing price), introduces the Y2K parallel for the dependency argument, and adds the missing fourth future.
|
||||
Revised in: None
|
||||
Challenged in: None
|
||||
Referenced in: None
|
||||
Related concepts: Dependency Trap, Infrastructure Threshold, Cognitive Surplus
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,470 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Build cross-reference artifacts for the VIBECODE-THEORY paper series.
|
||||
|
||||
Outputs:
|
||||
- graph.json
|
||||
- graph.mermaid
|
||||
- dangling_threads.md
|
||||
- concept_flow.md
|
||||
"""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import json
|
||||
import re
|
||||
from collections import defaultdict
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import Iterable
|
||||
|
||||
|
||||
ROOT = Path(__file__).resolve().parents[2]
|
||||
OUT_DIR = Path(__file__).resolve().parent
|
||||
|
||||
PAPER_GLOB = "00*-*.md"
|
||||
ALLEGORY_GLOB = "allegorical/*.md"
|
||||
|
||||
STOPWORDS = {
|
||||
"about",
|
||||
"after",
|
||||
"again",
|
||||
"also",
|
||||
"because",
|
||||
"between",
|
||||
"could",
|
||||
"does",
|
||||
"from",
|
||||
"have",
|
||||
"into",
|
||||
"just",
|
||||
"like",
|
||||
"might",
|
||||
"more",
|
||||
"most",
|
||||
"over",
|
||||
"paper",
|
||||
"question",
|
||||
"series",
|
||||
"should",
|
||||
"than",
|
||||
"that",
|
||||
"their",
|
||||
"them",
|
||||
"then",
|
||||
"this",
|
||||
"those",
|
||||
"through",
|
||||
"what",
|
||||
"when",
|
||||
"which",
|
||||
"with",
|
||||
"would",
|
||||
}
|
||||
|
||||
RELATION_PRIORITY = {
|
||||
"supersedes": 8,
|
||||
"refutes": 7,
|
||||
"challenges": 6,
|
||||
"revises": 5,
|
||||
"extends": 4,
|
||||
"addresses": 3,
|
||||
"introduces concept used by": 2,
|
||||
"references": 1,
|
||||
}
|
||||
|
||||
CONCEPT_CATALOG = {
|
||||
"vibe coding as social skill": {
|
||||
"aliases": ["vibe coding", "social skill", "meta-skill"],
|
||||
"intro": "001",
|
||||
},
|
||||
"cognitive surplus": {
|
||||
"aliases": ["cognitive surplus", "surplus"],
|
||||
"intro": "002",
|
||||
},
|
||||
"dependency trap": {
|
||||
"aliases": ["dependency trap", "systemic dependency"],
|
||||
"intro": "002",
|
||||
},
|
||||
"cognitive preference shift": {
|
||||
"aliases": ["cognitive preference shift", "preference shift"],
|
||||
"intro": "005",
|
||||
},
|
||||
"automation spiral": {
|
||||
"aliases": ["automation spiral"],
|
||||
"intro": "003",
|
||||
},
|
||||
"feedback loop": {
|
||||
"aliases": ["feedback loop", "uncomfortable middle"],
|
||||
"intro": "006",
|
||||
},
|
||||
"biological ratchet": {
|
||||
"aliases": ["biological ratchet", "ratchet"],
|
||||
"intro": "007",
|
||||
},
|
||||
"infrastructure threshold": {
|
||||
"aliases": ["infrastructure threshold", "application phase"],
|
||||
"intro": "007",
|
||||
},
|
||||
"premature dependency hibernation": {
|
||||
"aliases": ["premature dependencies", "hibernation"],
|
||||
"intro": "007",
|
||||
},
|
||||
"knowledge unification": {
|
||||
"aliases": ["knowledge unification", "defragmentation"],
|
||||
"intro": "008",
|
||||
},
|
||||
"ship of theseus identity problem": {
|
||||
"aliases": ["ship of theseus", "species identity"],
|
||||
"intro": "008",
|
||||
},
|
||||
"cheating frame": {
|
||||
"aliases": ['"cheating"', "cheating frame"],
|
||||
"intro": "008",
|
||||
},
|
||||
"dependency chain": {
|
||||
"aliases": ["dependency chain"],
|
||||
"intro": "007",
|
||||
},
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class Document:
|
||||
doc_id: str
|
||||
title: str
|
||||
kind: str
|
||||
path: Path
|
||||
text: str
|
||||
|
||||
|
||||
def read_documents() -> list[Document]:
|
||||
docs: list[Document] = []
|
||||
|
||||
for path in sorted(ROOT.glob(PAPER_GLOB)):
|
||||
text = path.read_text(encoding="utf-8")
|
||||
m = re.search(r"^#\s+Paper\s+(\d{3}):\s*(.+)$", text, flags=re.M)
|
||||
if m:
|
||||
doc_id, title = m.group(1), m.group(2).strip()
|
||||
else:
|
||||
doc_id = path.name.split("-", 1)[0]
|
||||
title = path.stem
|
||||
docs.append(Document(doc_id=doc_id, title=title, kind="paper", path=path, text=text))
|
||||
|
||||
for path in sorted(ROOT.glob(ALLEGORY_GLOB)):
|
||||
text = path.read_text(encoding="utf-8")
|
||||
m = re.search(r"^#\s+(.+)$", text, flags=re.M)
|
||||
title = m.group(1).strip() if m else path.stem.replace("-", " ").title()
|
||||
docs.append(
|
||||
Document(
|
||||
doc_id=f"A:{path.stem}",
|
||||
title=title,
|
||||
kind="allegory",
|
||||
path=path,
|
||||
text=text,
|
||||
)
|
||||
)
|
||||
|
||||
return docs
|
||||
|
||||
|
||||
def sentence_chunks(text: str) -> Iterable[str]:
|
||||
for chunk in re.split(r"(?<=[.!?])\s+|\n{2,}", text):
|
||||
cleaned = " ".join(chunk.strip().split())
|
||||
if cleaned:
|
||||
yield cleaned
|
||||
|
||||
|
||||
def classify_relationship(text: str) -> str:
|
||||
lower = text.lower()
|
||||
if "supersed" in lower:
|
||||
return "supersedes"
|
||||
if any(k in lower for k in ("refute", "rebuttal", "against")):
|
||||
return "refutes"
|
||||
if any(k in lower for k in ("challenge", "critic", "unfalsifiable")):
|
||||
return "challenges"
|
||||
if "revis" in lower:
|
||||
return "revises"
|
||||
if "extend" in lower:
|
||||
return "extends"
|
||||
if any(k in lower for k in ("respond", "address", "engage")):
|
||||
return "addresses"
|
||||
return "references"
|
||||
|
||||
|
||||
def find_paper_targets(text: str) -> list[str]:
|
||||
if "paper" not in text.lower():
|
||||
return []
|
||||
return sorted(set(re.findall(r"\b00[1-8]\b", text)))
|
||||
|
||||
|
||||
def add_edge(edges: dict[tuple[str, str], dict], source: str, target: str, edge_type: str, context: str) -> None:
|
||||
if source == target:
|
||||
return
|
||||
key = (source, target)
|
||||
candidate = {"source": source, "target": target, "type": edge_type, "context": context}
|
||||
existing = edges.get(key)
|
||||
if not existing:
|
||||
edges[key] = candidate
|
||||
return
|
||||
if RELATION_PRIORITY[edge_type] > RELATION_PRIORITY[existing["type"]]:
|
||||
edges[key] = candidate
|
||||
|
||||
|
||||
def extract_explicit_edges(docs: list[Document]) -> dict[tuple[str, str], dict]:
|
||||
edges: dict[tuple[str, str], dict] = {}
|
||||
allegory_name_to_id = {doc.path.stem.replace("-", " "): doc.doc_id for doc in docs if doc.kind == "allegory"}
|
||||
|
||||
for doc in docs:
|
||||
for sent in sentence_chunks(doc.text):
|
||||
targets = find_paper_targets(sent)
|
||||
if targets:
|
||||
rel = classify_relationship(sent)
|
||||
for target in targets:
|
||||
add_edge(edges, doc.doc_id, target, rel, sent[:220])
|
||||
|
||||
if doc.kind == "paper" and doc.doc_id == "007":
|
||||
lower = doc.text.lower()
|
||||
for name, target_id in allegory_name_to_id.items():
|
||||
if name in lower:
|
||||
add_edge(
|
||||
edges,
|
||||
doc.doc_id,
|
||||
target_id,
|
||||
"extends",
|
||||
f"Paper 007 explicitly maps the {name.title()} allegory into the ratchet framework.",
|
||||
)
|
||||
|
||||
if doc.kind == "allegory":
|
||||
for sent in sentence_chunks(doc.text):
|
||||
targets = find_paper_targets(sent)
|
||||
for target in targets:
|
||||
add_edge(edges, doc.doc_id, target, "addresses", sent[:220])
|
||||
|
||||
return edges
|
||||
|
||||
|
||||
def collect_concept_presence(docs: list[Document]) -> tuple[dict[str, str], dict[str, set[str]]]:
|
||||
intro: dict[str, str] = {}
|
||||
usage: dict[str, set[str]] = defaultdict(set)
|
||||
|
||||
ordered = sorted([d for d in docs if d.kind == "paper"], key=lambda d: d.doc_id) + [
|
||||
d for d in docs if d.kind == "allegory"
|
||||
]
|
||||
|
||||
for doc in ordered:
|
||||
lower = doc.text.lower()
|
||||
for concept, info in CONCEPT_CATALOG.items():
|
||||
aliases = info["aliases"]
|
||||
if any(alias.lower() in lower for alias in aliases):
|
||||
usage[concept].add(doc.doc_id)
|
||||
expected_intro = info["intro"]
|
||||
if expected_intro in {d.doc_id for d in docs if d.kind == "paper"}:
|
||||
intro.setdefault(concept, expected_intro)
|
||||
else:
|
||||
intro.setdefault(concept, doc.doc_id)
|
||||
return intro, usage
|
||||
|
||||
|
||||
def extract_implicit_edges(
|
||||
docs: list[Document], intro: dict[str, str], usage: dict[str, set[str]], edges: dict[tuple[str, str], dict]
|
||||
) -> None:
|
||||
for concept, source in intro.items():
|
||||
if not re.match(r"^00[1-8]$", source):
|
||||
continue
|
||||
for target in sorted(usage[concept]):
|
||||
if target == source or not re.match(r"^00[1-8]$", target):
|
||||
continue
|
||||
if target <= source:
|
||||
continue
|
||||
add_edge(
|
||||
edges,
|
||||
source,
|
||||
target,
|
||||
"introduces concept used by",
|
||||
f"{concept} appears first in {source} and recurs in {target}.",
|
||||
)
|
||||
|
||||
|
||||
def build_nodes(docs: list[Document], intro: dict[str, str]) -> list[dict]:
|
||||
concept_by_doc: dict[str, list[str]] = defaultdict(list)
|
||||
for concept, doc_id in intro.items():
|
||||
concept_by_doc[doc_id].append(concept)
|
||||
|
||||
nodes: list[dict] = []
|
||||
for doc in sorted(docs, key=lambda d: (d.kind != "paper", d.doc_id)):
|
||||
nodes.append(
|
||||
{
|
||||
"id": doc.doc_id,
|
||||
"title": doc.title,
|
||||
"kind": doc.kind,
|
||||
"concepts_introduced": sorted(concept_by_doc.get(doc.doc_id, [])),
|
||||
}
|
||||
)
|
||||
return nodes
|
||||
|
||||
|
||||
def write_mermaid(nodes: list[dict], edges: list[dict]) -> None:
|
||||
def mm_id(node_id: str) -> str:
|
||||
return re.sub(r"[^A-Za-z0-9_]", "_", node_id)
|
||||
|
||||
lines = ["graph TD"]
|
||||
for node in nodes:
|
||||
nid = mm_id(node["id"])
|
||||
label = f'{node["id"]}: {node["title"]}'
|
||||
lines.append(f' {nid}["{label}"]')
|
||||
for edge in edges:
|
||||
src = mm_id(edge["source"])
|
||||
dst = mm_id(edge["target"])
|
||||
rel = edge["type"].replace('"', "")
|
||||
lines.append(f" {src} -->|{rel}| {dst}")
|
||||
(OUT_DIR / "graph.mermaid").write_text("\n".join(lines) + "\n", encoding="utf-8")
|
||||
|
||||
|
||||
def extract_open_questions(paper: Document) -> list[str]:
|
||||
lines = paper.text.splitlines()
|
||||
start = None
|
||||
for i, line in enumerate(lines):
|
||||
if line.strip().lower().startswith("## open questions"):
|
||||
start = i + 1
|
||||
break
|
||||
if start is None:
|
||||
return []
|
||||
|
||||
questions: list[str] = []
|
||||
for line in lines[start:]:
|
||||
if line.startswith("## "):
|
||||
break
|
||||
stripped = line.strip()
|
||||
if re.match(r"^(\d+\.|-)\s+", stripped):
|
||||
body = re.sub(r"^(\d+\.|-)\s+", "", stripped).strip()
|
||||
if body:
|
||||
questions.append(body)
|
||||
return questions
|
||||
|
||||
|
||||
def question_keywords(text: str) -> set[str]:
|
||||
words = re.findall(r"[A-Za-z][A-Za-z\-]{3,}", text.lower())
|
||||
return {w for w in words if w not in STOPWORDS}
|
||||
|
||||
|
||||
def build_dangling_threads(papers: list[Document]) -> str:
|
||||
paper_map = {p.doc_id: p for p in papers}
|
||||
ordered_ids = sorted(paper_map.keys())
|
||||
lines = ["# Dangling Threads", ""]
|
||||
|
||||
found_any = False
|
||||
for doc_id in ordered_ids:
|
||||
paper = paper_map[doc_id]
|
||||
questions = extract_open_questions(paper)
|
||||
later = [paper_map[i] for i in ordered_ids if i > doc_id]
|
||||
|
||||
for question in questions:
|
||||
kws = question_keywords(question)
|
||||
hits: list[str] = []
|
||||
if kws:
|
||||
for other in later:
|
||||
lower = other.text.lower()
|
||||
overlap = sum(1 for kw in kws if kw in lower)
|
||||
if overlap >= 2:
|
||||
hits.append(other.doc_id)
|
||||
found_any = True
|
||||
if hits:
|
||||
lines.append(
|
||||
f"- Raised in **Paper {doc_id}**: {question} \n"
|
||||
f" Partially addressed in later papers: {', '.join(f'Paper {h}' for h in hits)}."
|
||||
)
|
||||
else:
|
||||
lines.append(
|
||||
f"- Raised in **Paper {doc_id}**: {question} \n"
|
||||
" Partially addressed in later papers: none detected."
|
||||
)
|
||||
|
||||
if not found_any:
|
||||
lines.append("- No open-question sections were detected in the source files.")
|
||||
lines.append("")
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def build_concept_flow(
|
||||
papers: list[Document], intro: dict[str, str], usage: dict[str, set[str]], explicit_edges: list[dict]
|
||||
) -> str:
|
||||
lines = ["# Concept Flow", ""]
|
||||
|
||||
paper_ids = sorted(p.doc_id for p in papers)
|
||||
paper_map = {p.doc_id: p for p in papers}
|
||||
|
||||
for concept in sorted(CONCEPT_CATALOG.keys()):
|
||||
introduced = intro.get(concept, "unknown")
|
||||
used_in = sorted(d for d in usage.get(concept, set()) if d in paper_ids)
|
||||
aliases = CONCEPT_CATALOG[concept]["aliases"]
|
||||
|
||||
challenged: set[str] = set()
|
||||
revised: set[str] = set()
|
||||
for doc_id in used_in:
|
||||
has_concept_sentence = False
|
||||
for sent in sentence_chunks(paper_map[doc_id].text):
|
||||
lower_sent = sent.lower()
|
||||
if not any(a.lower() in lower_sent for a in aliases):
|
||||
continue
|
||||
has_concept_sentence = True
|
||||
if any(k in lower_sent for k in ("challenge", "critic", "rebuttal", "against", "unfalsifiable")):
|
||||
challenged.add(doc_id)
|
||||
if any(k in lower_sent for k in ("revision", "revised", "supersedes", "responds", "extends")):
|
||||
revised.add(doc_id)
|
||||
if not has_concept_sentence:
|
||||
continue
|
||||
|
||||
challenged_list = sorted(challenged)
|
||||
revised_list = sorted(revised)
|
||||
current = used_in[-1] if used_in else "unknown"
|
||||
|
||||
lines.append(f"## {concept.title()}")
|
||||
lines.append(f"- Introduced in: Paper {introduced}" if introduced != "unknown" else "- Introduced in: unknown")
|
||||
lines.append(
|
||||
f"- Challenged in: {', '.join(f'Paper {p}' for p in challenged_list)}"
|
||||
if challenged_list
|
||||
else "- Challenged in: none detected"
|
||||
)
|
||||
lines.append(
|
||||
f"- Revised in: {', '.join(f'Paper {p}' for p in revised_list)}"
|
||||
if revised_list
|
||||
else "- Revised in: none detected"
|
||||
)
|
||||
lines.append(
|
||||
f"- Referenced in: {', '.join(f'Paper {p}' for p in used_in)}" if used_in else "- Referenced in: none detected"
|
||||
)
|
||||
lines.append(f"- Current standing: active in latest mention (Paper {current})." if current != "unknown" else "- Current standing: unclear.")
|
||||
lines.append("")
|
||||
|
||||
return "\n".join(lines)
|
||||
|
||||
|
||||
def main() -> None:
|
||||
docs = read_documents()
|
||||
papers = [d for d in docs if d.kind == "paper"]
|
||||
|
||||
intro, usage = collect_concept_presence(docs)
|
||||
edge_map = extract_explicit_edges(docs)
|
||||
extract_implicit_edges(docs, intro, usage, edge_map)
|
||||
|
||||
nodes = build_nodes(docs, intro)
|
||||
edges = sorted(edge_map.values(), key=lambda e: (e["source"], e["target"], e["type"]))
|
||||
|
||||
graph = {"nodes": nodes, "edges": edges}
|
||||
(OUT_DIR / "graph.json").write_text(json.dumps(graph, indent=2) + "\n", encoding="utf-8")
|
||||
write_mermaid(nodes, edges)
|
||||
|
||||
dangling = build_dangling_threads(papers)
|
||||
(OUT_DIR / "dangling_threads.md").write_text(dangling, encoding="utf-8")
|
||||
|
||||
flow = build_concept_flow(papers, intro, usage, edges)
|
||||
(OUT_DIR / "concept_flow.md").write_text(flow, encoding="utf-8")
|
||||
|
||||
print(f"Wrote {OUT_DIR / 'graph.json'}")
|
||||
print(f"Wrote {OUT_DIR / 'graph.mermaid'}")
|
||||
print(f"Wrote {OUT_DIR / 'dangling_threads.md'}")
|
||||
print(f"Wrote {OUT_DIR / 'concept_flow.md'}")
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
@@ -0,0 +1,92 @@
|
||||
# Concept Flow
|
||||
|
||||
## Automation Spiral
|
||||
- Introduced in: Paper 003
|
||||
- Challenged in: none detected
|
||||
- Revised in: Paper 006
|
||||
- Referenced in: Paper 003, Paper 005, Paper 006, Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Biological Ratchet
|
||||
- Introduced in: Paper 007
|
||||
- Challenged in: none detected
|
||||
- Revised in: Paper 008
|
||||
- Referenced in: Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Cheating Frame
|
||||
- Introduced in: Paper 008
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Cognitive Preference Shift
|
||||
- Introduced in: Paper 005
|
||||
- Challenged in: none detected
|
||||
- Revised in: Paper 005
|
||||
- Referenced in: Paper 003, Paper 005, Paper 007
|
||||
- Current standing: active in latest mention (Paper 007).
|
||||
|
||||
## Cognitive Surplus
|
||||
- Introduced in: Paper 002
|
||||
- Challenged in: Paper 003
|
||||
- Revised in: Paper 001, Paper 005, Paper 006
|
||||
- Referenced in: Paper 001, Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Dependency Chain
|
||||
- Introduced in: Paper 007
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Dependency Trap
|
||||
- Introduced in: Paper 002
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 002, Paper 003, Paper 005
|
||||
- Current standing: active in latest mention (Paper 005).
|
||||
|
||||
## Feedback Loop
|
||||
- Introduced in: Paper 006
|
||||
- Challenged in: Paper 005
|
||||
- Revised in: Paper 006
|
||||
- Referenced in: Paper 005, Paper 006, Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Infrastructure Threshold
|
||||
- Introduced in: Paper 007
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Knowledge Unification
|
||||
- Introduced in: Paper 008
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Premature Dependency Hibernation
|
||||
- Introduced in: Paper 007
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 007
|
||||
- Current standing: active in latest mention (Paper 007).
|
||||
|
||||
## Ship Of Theseus Identity Problem
|
||||
- Introduced in: Paper 008
|
||||
- Challenged in: none detected
|
||||
- Revised in: none detected
|
||||
- Referenced in: Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
|
||||
## Vibe Coding As Social Skill
|
||||
- Introduced in: Paper 001
|
||||
- Challenged in: Paper 003, Paper 004, Paper 006
|
||||
- Revised in: Paper 001, Paper 004, Paper 007
|
||||
- Referenced in: Paper 001, Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008
|
||||
- Current standing: active in latest mention (Paper 008).
|
||||
@@ -0,0 +1,70 @@
|
||||
# Dangling Threads
|
||||
|
||||
- Raised in **Paper 001**: **Is the technical foundation truly replaceable?** Can someone develop equivalent evaluation judgment purely through extended AI collaboration, or is there an irreducible minimum of direct experience needed? Seth's experience suggests the foundation helps enormously, but the minimum hasn't been established.
|
||||
Partially addressed in later papers: Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 001**: **How do mental models transfer across AI generations?** When a model is significantly updated, how much of the vibe coder's accumulated relational knowledge still applies? Is there an equivalent of "re-learning a friend after a major life change"?
|
||||
Partially addressed in later papers: Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 001**: **Can the social skill be measured?** If we're claiming vibe coding is a social skill, we should be able to measure it independently of output quality. What would a "vibe coding social skill assessment" look like?
|
||||
Partially addressed in later papers: Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 001**: **What's the ceiling without technical foundation?** The social skill framework suggests technical expertise is an amplifier, not a requirement. But is there a ceiling for vibe coders without technical foundations? And is that ceiling rising as AI output quality improves?
|
||||
Partially addressed in later papers: Paper 002, Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 002**: **Is the agricultural parallel predictive or just illustrative?** Do civilizational phase transitions follow common patterns, or is each one unique enough that historical parallels mislead more than they inform?
|
||||
Partially addressed in later papers: Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 002**: **What's the timeline?** The agricultural transition took millennia. The industrial transition took centuries. If this one takes years to decades, do human institutions adapt fast enough to manage it?
|
||||
Partially addressed in later papers: Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 002**: **Can cognitive atrophy be prevented without sacrificing the surplus?** Agriculture didn't manage this — foraging skills were simply lost. Is there a way to maintain independent cognitive skills while still benefiting from AI augmentation? Or is atrophy the unavoidable price of surplus?
|
||||
Partially addressed in later papers: Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 002**: **Who decides?** The surplus will be controlled by someone. Current trajectories suggest large AI companies, but open-source movements, government regulation, and individual skill development all push against concentration. Which forces will dominate?
|
||||
Partially addressed in later papers: Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 002**: **What's the role of speed?** If the most powerful actors are those who move fastest with AI, does this create a systemic bias toward action over reflection? And if so, is that bias self-correcting (fast actors make visible mistakes) or self-reinforcing (fast actors capture resources that fund even faster action)?
|
||||
Partially addressed in later papers: Paper 003, Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 003**: **Is unfalsifiability actually fatal?** Many useful frameworks in social science and philosophy are technically unfalsifiable. Does the value of a framework depend on falsifiability, or on explanatory and predictive utility? If the social-skill framing helps people become better vibe coders, does it matter whether it can be disproven?
|
||||
Partially addressed in later papers: Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 003**: **Can cognitive atrophy be measured?** This is the key empirical question underlying Paper 002's risk analysis. Without measurement, the argument remains plausible speculation. With measurement, it becomes actionable.
|
||||
Partially addressed in later papers: Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 003**: **Is the automation spiral a timeline question or a structural question?** Maybe humans are always in the loop but the loop gets thinner. Maybe the loop closes entirely. The difference between these outcomes might be decades — or might already be determined by architectural choices being made now.
|
||||
Partially addressed in later papers: Paper 004, Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 004**: **Is the meta-skill real and measurable?** Can we design an experiment that tests whether experience with one AI system accelerates learning with a different one, beyond what technical knowledge alone would predict?
|
||||
Partially addressed in later papers: Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 004**: **What's the ceiling without technical foundation?** The framework says technical knowledge is an amplifier, not a requirement. But is there a ceiling? And is it rising as AI output quality improves?
|
||||
Partially addressed in later papers: Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 004**: **Is this framework actually useful?** The strongest test of a framework isn't whether it's true but whether it changes what people do. Does thinking about vibe coding through a social-cognitive lens lead to better education, better hiring, or better tools than thinking about it through a technical lens?
|
||||
Partially addressed in later papers: Paper 005, Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 005**: **Is the agricultural parallel predictive or just illustrative?** This revision suggests: illustrative for surplus distribution, not predictive for the production dynamics. Is that distinction sustainable?
|
||||
Partially addressed in later papers: Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 005**: **When does the AI Y2K moment arrive?** The first major infrastructure failure caused by AI dependency will reshape the conversation. Can we predict what sector it will hit first?
|
||||
Partially addressed in later papers: Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 005**: **Can cognitive preference shift be reversed?** If someone spends years preferring AI for cognitive tasks, can they regain full independent capability with practice? Or is there a point of no return? This is an empirical question that matters enormously for the atrophy/dependency argument.
|
||||
Partially addressed in later papers: Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 005**: **Is the automation spiral bounded?** Does human involvement in cognitive production asymptotically approach zero, or does it plateau? If it plateaus, at what level? The answer determines whether Futures 1-3 are the real options (human involvement persists) or Future 4 dominates (it doesn't).
|
||||
Partially addressed in later papers: Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 005**: **Is the cognition-as-commodity framing actionable for individuals?** If cognition is getting cheap, what should individual cognitive workers *do*? Move upmarket to tasks AI can't do? Specialize in AI orchestration? Prepare for a post-cognitive-work economy? The answer depends on which future we're heading toward, and we don't know yet.
|
||||
Partially addressed in later papers: Paper 006, Paper 007, Paper 008.
|
||||
- Raised in **Paper 006**: **Is there a stable equilibrium?** Does the feedback loop stabilize at some level of human involvement, or does it drive toward zero? If it stabilizes, what determines the equilibrium point?
|
||||
Partially addressed in later papers: Paper 007, Paper 008.
|
||||
- Raised in **Paper 006**: **What does the economy look like when cognition is cheap?** Not "what jobs exist" but "what is the basis for economic exchange when the primary input to information production costs nearly nothing?"
|
||||
Partially addressed in later papers: Paper 007, Paper 008.
|
||||
- Raised in **Paper 006**: **Can the niche construction framing generate predictions?** If vibe coders are modifying their own selection pressures, can we predict which traits will be selected for next? What does the "next generation" of AI collaborator look like?
|
||||
Partially addressed in later papers: Paper 007, Paper 008.
|
||||
- Raised in **Paper 006**: **Is the recursion observation meaningful or just pattern-matching?** The cosmological → linguistic → computational recursion is aesthetically appealing. Is it structurally real, or is it the human tendency to see patterns where there's only coincidence?
|
||||
Partially addressed in later papers: Paper 007, Paper 008.
|
||||
- Raised in **Paper 006**: **What should individuals do?** All the analysis in this series is structural and civilizational. But Seth's questions are personal: what should *I* do? Paper 007 should attempt a practical answer, not just a theoretical framework.
|
||||
Partially addressed in later papers: Paper 007, Paper 008.
|
||||
- Raised in **Paper 007**: **Where exactly is the infrastructure threshold for AI?** Which AI applications have already crossed into infrastructure, and which are still in the application phase? Can we identify the threshold conditions?
|
||||
Partially addressed in later papers: Paper 008.
|
||||
- Raised in **Paper 007**: **Is the biological ratchet argument falsifiable?** Can we find examples of neural adaptation to tool use that were successfully reversed at scale? What would that look like?
|
||||
Partially addressed in later papers: Paper 008.
|
||||
- Raised in **Paper 007**: **Does the ratchet have a direction?** This paper describes the mechanism. Paper 008 asks whether the mechanism is pointed somewhere — toward unification of knowledge, toward a singularity, toward something else. The ratchet turns, but does it turn *toward* something?
|
||||
Partially addressed in later papers: Paper 008.
|
||||
- Raised in **Paper 007**: **What does the allegorical tradition tell us about human self-awareness of the ratchet?** We've been warning ourselves for millennia. The warnings are accurate. We ignore them. Is the warning-and-ignoring cycle itself part of the ratchet?
|
||||
Partially addressed in later papers: Paper 008.
|
||||
- Raised in **Paper 008**: **Is the unification thesis falsifiable?** How would we know if AI was *not* unifying human knowledge but doing something else — fragmenting it, distorting it, replacing it with something non-human? What evidence would distinguish unification from replacement?
|
||||
Partially addressed in later papers: none detected.
|
||||
- Raised in **Paper 008**: **Does the identity question have a practical answer?** The three philosophical traditions offer frameworks but not decisions. Is there a way to navigate the transformation that preserves what matters without being left behind?
|
||||
Partially addressed in later papers: none detected.
|
||||
- Raised in **Paper 008**: **What should individuals actually do?** Papers 004 and 006 raised this. Paper 008 provides context (the transformation is structural, biological, and probably irreversible) but not guidance. The series needs to attempt practical answers, even uncertain ones.
|
||||
Partially addressed in later papers: none detected.
|
||||
- Raised in **Paper 008**: **Is the "cheating" frame useful or just rhetorical?** If every dependency is "cheating," does the concept lose meaning? Or does it point to something real about the human relationship to its own tools?
|
||||
Partially addressed in later papers: none detected.
|
||||
- Raised in **Paper 008**: **What's the timeline?** The series has been deliberately vague about timescales. At some point it needs to attempt concrete predictions, even with enormous uncertainty bands. When does the infrastructure threshold get crossed? When does the unification become functionally complete? When does the identity question stop being philosophical and start being practical?
|
||||
Partially addressed in later papers: none detected.
|
||||
@@ -0,0 +1,524 @@
|
||||
{
|
||||
"nodes": [
|
||||
{
|
||||
"id": "001",
|
||||
"title": "Vibe Coding as Social Skill",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"vibe coding as social skill"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "002",
|
||||
"title": "The Cognitive Surplus",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"cognitive surplus",
|
||||
"dependency trap"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "003",
|
||||
"title": "Stress-Testing the Foundations \u2014 A Rebuttal to Papers 001 and 002",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"automation spiral"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "004",
|
||||
"title": "Vibe Coding as Social Skill (Revised)",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "005",
|
||||
"title": "The Cognitive Surplus (Revised)",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"cognitive preference shift"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "006",
|
||||
"title": "The Feedback Loop \u2014 Are Vibe Coders Coding Themselves Out of Existence?",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"feedback loop"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "007",
|
||||
"title": "The Ratchet \u2014 Why Dependencies Don't Reverse",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"biological ratchet",
|
||||
"dependency chain",
|
||||
"infrastructure threshold",
|
||||
"premature dependency hibernation"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "008",
|
||||
"title": "The Ship of Theseus \u2014 Identity, Unification, and the End of Fragmentation",
|
||||
"kind": "paper",
|
||||
"concepts_introduced": [
|
||||
"cheating frame",
|
||||
"knowledge unification",
|
||||
"ship of theseus identity problem"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "A:eves-apple",
|
||||
"title": "Eve's Apple \u2014 The Tree of Knowledge",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:faust",
|
||||
"title": "Faust \u2014 The Bargain That Costs Your Soul",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:icarus",
|
||||
"title": "Icarus \u2014 Flying Too Close to the Sun",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:pandoras-box",
|
||||
"title": "Pandora's Box \u2014 Unleashing What Cannot Be Contained",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:prometheus",
|
||||
"title": "Prometheus \u2014 Stealing Fire from the Gods",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:sorcerers-apprentice",
|
||||
"title": "The Sorcerer's Apprentice \u2014 Automation Beyond Control",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:the-golem",
|
||||
"title": "The Golem \u2014 The Servant Without Agency",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
},
|
||||
{
|
||||
"id": "A:tower-of-babel",
|
||||
"title": "The Tower of Babel \u2014 Collective Ambition and Fragmentation",
|
||||
"kind": "allegory",
|
||||
"concepts_introduced": []
|
||||
}
|
||||
],
|
||||
"edges": [
|
||||
{
|
||||
"source": "001",
|
||||
"target": "002",
|
||||
"type": "extends",
|
||||
"context": "Paper 002 (\"The Cognitive Surplus\") extends this analysis to civilizational implications \u2014 what happens when this social skill becomes a primary differentiator in economic productivity."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "003",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 003."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "004",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 004."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "005",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 005."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "006",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 006."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "007",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 007."
|
||||
},
|
||||
{
|
||||
"source": "001",
|
||||
"target": "008",
|
||||
"type": "introduces concept used by",
|
||||
"context": "vibe coding as social skill appears first in 001 and recurs in 008."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "001",
|
||||
"type": "references",
|
||||
"context": "Those with access to AI and the skill to wield it (see Paper 001) experience a productivity explosion."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "003",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 003."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "004",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 004."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "005",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 005."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "006",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 006."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "007",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 007."
|
||||
},
|
||||
{
|
||||
"source": "002",
|
||||
"target": "008",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive surplus appears first in 002 and recurs in 008."
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "001",
|
||||
"type": "refutes",
|
||||
"context": "# Paper 003: Stress-Testing the Foundations \u2014 A Rebuttal to Papers 001 and 002"
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "002",
|
||||
"type": "refutes",
|
||||
"context": "# Paper 003: Stress-Testing the Foundations \u2014 A Rebuttal to Papers 001 and 002"
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "004",
|
||||
"type": "challenges",
|
||||
"context": "The revisions in Papers 004 and 005 incorporate the criticisms that survive examination here."
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "005",
|
||||
"type": "challenges",
|
||||
"context": "The revisions in Papers 004 and 005 incorporate the criticisms that survive examination here."
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "006",
|
||||
"type": "introduces concept used by",
|
||||
"context": "automation spiral appears first in 003 and recurs in 006."
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "007",
|
||||
"type": "introduces concept used by",
|
||||
"context": "automation spiral appears first in 003 and recurs in 007."
|
||||
},
|
||||
{
|
||||
"source": "003",
|
||||
"target": "008",
|
||||
"type": "introduces concept used by",
|
||||
"context": "automation spiral appears first in 003 and recurs in 008."
|
||||
},
|
||||
{
|
||||
"source": "004",
|
||||
"target": "001",
|
||||
"type": "supersedes",
|
||||
"context": "**Authors:** Seth & Claude (Opus 4.6) **Date:** 2026-04-02 **Series:** VIBECODE-THEORY **Status:** Revision of Paper 001, incorporating critiques from Paper 003 **Supersedes:** Paper 001"
|
||||
},
|
||||
{
|
||||
"source": "004",
|
||||
"target": "002",
|
||||
"type": "references",
|
||||
"context": "**Paper 002:** The social-cognitive framework here explains *why* Paper 002's cognitive surplus won't be equally accessible even with open technology \u2014 because the skill to use it effectively is unevenly distributed and "
|
||||
},
|
||||
{
|
||||
"source": "004",
|
||||
"target": "003",
|
||||
"type": "supersedes",
|
||||
"context": "**Authors:** Seth & Claude (Opus 4.6) **Date:** 2026-04-02 **Series:** VIBECODE-THEORY **Status:** Revision of Paper 001, incorporating critiques from Paper 003 **Supersedes:** Paper 001"
|
||||
},
|
||||
{
|
||||
"source": "005",
|
||||
"target": "002",
|
||||
"type": "supersedes",
|
||||
"context": "**Authors:** Seth & Claude (Opus 4.6) **Date:** 2026-04-02 **Series:** VIBECODE-THEORY **Status:** Revision of Paper 002, incorporating critiques from Paper 003 and new analysis from session conversation **Supersedes:** "
|
||||
},
|
||||
{
|
||||
"source": "005",
|
||||
"target": "003",
|
||||
"type": "supersedes",
|
||||
"context": "**Authors:** Seth & Claude (Opus 4.6) **Date:** 2026-04-02 **Series:** VIBECODE-THEORY **Status:** Revision of Paper 002, incorporating critiques from Paper 003 and new analysis from session conversation **Supersedes:** "
|
||||
},
|
||||
{
|
||||
"source": "005",
|
||||
"target": "004",
|
||||
"type": "references",
|
||||
"context": "The implications: - Control of AI = control of the means of cognitive production - Access to AI = access to cheap cognition = access to information advantage - Skill with AI (Paper 004's framework) = efficiency of cognit"
|
||||
},
|
||||
{
|
||||
"source": "005",
|
||||
"target": "007",
|
||||
"type": "introduces concept used by",
|
||||
"context": "cognitive preference shift appears first in 005 and recurs in 007."
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "001",
|
||||
"type": "challenges",
|
||||
"context": "**Paper 001/004 (Vibe Coding as Social Skill):** This paper directly challenges the durability of the skill described there."
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "002",
|
||||
"type": "extends",
|
||||
"context": "**Paper 002/005 (The Cognitive Surplus):** This paper extends Paper 005's \"fourth future\" (the Automation Spiral) with the mechanism that drives it: the feedback loop where human AI collaboration directly accelerates AI'"
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "003",
|
||||
"type": "refutes",
|
||||
"context": "**Paper 003 (Rebuttal):** This paper picks up where Paper 003's critique of the agricultural analogy ended."
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "004",
|
||||
"type": "challenges",
|
||||
"context": "**Paper 001/004 (Vibe Coding as Social Skill):** This paper directly challenges the durability of the skill described there."
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "005",
|
||||
"type": "extends",
|
||||
"context": "**Paper 002/005 (The Cognitive Surplus):** This paper extends Paper 005's \"fourth future\" (the Automation Spiral) with the mechanism that drives it: the feedback loop where human AI collaboration directly accelerates AI'"
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "007",
|
||||
"type": "introduces concept used by",
|
||||
"context": "feedback loop appears first in 006 and recurs in 007."
|
||||
},
|
||||
{
|
||||
"source": "006",
|
||||
"target": "008",
|
||||
"type": "introduces concept used by",
|
||||
"context": "feedback loop appears first in 006 and recurs in 008."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "001",
|
||||
"type": "references",
|
||||
"context": "Papers 001 through 006 assert a chain of dependencies \u2014 fire \u2192 language \u2192 writing \u2192 printing \u2192 internet \u2192 AI \u2014 that has built upward over the course of human history."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "002",
|
||||
"type": "references",
|
||||
"context": "**Paper 002/005 (The Cognitive Surplus):** This paper grounds the cognitive preference shift in neuroscience \u2014 it's not just a preference, it's physical neural adaptation."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "003",
|
||||
"type": "refutes",
|
||||
"context": "**Paper 003 (Rebuttal):** Paper 003 warned about unfalsifiability."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "004",
|
||||
"type": "revises",
|
||||
"context": "**Paper 004 (Vibe Coding Revised):** The infrastructure/application threshold extends Paper 004's shelf-life argument."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "005",
|
||||
"type": "references",
|
||||
"context": "atrophy\" distinction from Paper 005 matters."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "006",
|
||||
"type": "references",
|
||||
"context": "Papers 001 through 006 assert a chain of dependencies \u2014 fire \u2192 language \u2192 writing \u2192 printing \u2192 internet \u2192 AI \u2014 that has built upward over the course of human history."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "008",
|
||||
"type": "introduces concept used by",
|
||||
"context": "biological ratchet appears first in 007 and recurs in 008."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "A:faust",
|
||||
"type": "extends",
|
||||
"context": "Paper 007 explicitly maps the Faust allegory into the ratchet framework."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "A:icarus",
|
||||
"type": "extends",
|
||||
"context": "Paper 007 explicitly maps the Icarus allegory into the ratchet framework."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "A:prometheus",
|
||||
"type": "extends",
|
||||
"context": "Paper 007 explicitly maps the Prometheus allegory into the ratchet framework."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "A:the-golem",
|
||||
"type": "extends",
|
||||
"context": "Paper 007 explicitly maps the The Golem allegory into the ratchet framework."
|
||||
},
|
||||
{
|
||||
"source": "007",
|
||||
"target": "A:tower-of-babel",
|
||||
"type": "extends",
|
||||
"context": "Paper 007 explicitly maps the Tower Of Babel allegory into the ratchet framework."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "001",
|
||||
"type": "references",
|
||||
"context": "Vibe coding is a real skill with a real but limited shelf life (Papers 001/004) 2."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "002",
|
||||
"type": "references",
|
||||
"context": "The cognitive surplus from AI follows the pattern of every previous force multiplier, with an unprecedented feedback loop (Papers 002/005) 3."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "003",
|
||||
"type": "refutes",
|
||||
"context": "**Paper 003 (Rebuttal):** Paper 003 asked whether the agricultural analogy was being stretched beyond its usefulness."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "004",
|
||||
"type": "references",
|
||||
"context": "Vibe coding is a real skill with a real but limited shelf life (Papers 001/004) 2."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "005",
|
||||
"type": "references",
|
||||
"context": "The cognitive surplus from AI follows the pattern of every previous force multiplier, with an unprecedented feedback loop (Papers 002/005) 3."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "006",
|
||||
"type": "references",
|
||||
"context": "These questions were raised in Paper 006 and remain unanswered."
|
||||
},
|
||||
{
|
||||
"source": "008",
|
||||
"target": "007",
|
||||
"type": "extends",
|
||||
"context": "**Paper 007 (The Ratchet):** This paper extends 007's ratchet mechanism with a direction."
|
||||
},
|
||||
{
|
||||
"source": "A:eves-apple",
|
||||
"target": "005",
|
||||
"type": "addresses",
|
||||
"context": "Eve's Apple maps most directly to the **cognitive preference shift** described in Paper 005."
|
||||
},
|
||||
{
|
||||
"source": "A:faust",
|
||||
"target": "004",
|
||||
"type": "addresses",
|
||||
"context": "Paper 004's meta-skill argument is Goethean: the ability to adapt, model, and engage with novel cognitive systems may be valuable *even if* the specific skill of vibe coding is transitional."
|
||||
},
|
||||
{
|
||||
"source": "A:faust",
|
||||
"target": "005",
|
||||
"type": "addresses",
|
||||
"context": "The cognitive surplus from Paper 005 is Faust's unlimited knowledge \u2014 real power, immediately available."
|
||||
},
|
||||
{
|
||||
"source": "A:faust",
|
||||
"target": "006",
|
||||
"type": "addresses",
|
||||
"context": "Faust maps directly to Paper 006's **\"uncomfortable middle\"**: the optimal short-term strategy (collaborate deeply with AI, maximize productivity) is the same strategy that accelerates the long-term threat (training AI t"
|
||||
},
|
||||
{
|
||||
"source": "A:icarus",
|
||||
"target": "004",
|
||||
"type": "addresses",
|
||||
"context": "**The Daedalus-Icarus split maps to the expert-novice divide in vibe coding.** Paper 004 argues that vibe coding skill has a shelf life and that the durable version is the meta-skill of rapidly modeling cognitive systems"
|
||||
},
|
||||
{
|
||||
"source": "A:pandoras-box",
|
||||
"target": "004",
|
||||
"type": "addresses",
|
||||
"context": "Hope, in the context of AI dependency, might be the meta-skill argument from Paper 004 \u2014 the possibility that human adaptability persists even after the specific skills are automated."
|
||||
},
|
||||
{
|
||||
"source": "A:pandoras-box",
|
||||
"target": "005",
|
||||
"type": "addresses",
|
||||
"context": "Paper 005's four futures range from utopian to dystopian, but all of them assume the box is open."
|
||||
},
|
||||
{
|
||||
"source": "A:pandoras-box",
|
||||
"target": "006",
|
||||
"type": "addresses",
|
||||
"context": "Pandora's Box maps to the **\"can we stop it?\"** question from Paper 006."
|
||||
},
|
||||
{
|
||||
"source": "A:prometheus",
|
||||
"target": "006",
|
||||
"type": "addresses",
|
||||
"context": "The allegory maps to Paper 006's theological thread: \"God made man in his image, just as man made artificial cognition in his format.\" The Promethean frame adds a layer \u2014 it's not just creation in one's image, it's the *"
|
||||
},
|
||||
{
|
||||
"source": "A:sorcerers-apprentice",
|
||||
"target": "005",
|
||||
"type": "addresses",
|
||||
"context": "The allegory maps to Paper 005's **Automation Spiral** (the fourth future): humans use AI \u2192 AI improves \u2192 AI needs less human input \u2192 repeat."
|
||||
},
|
||||
{
|
||||
"source": "A:sorcerers-apprentice",
|
||||
"target": "006",
|
||||
"type": "addresses",
|
||||
"context": "Paper 006's master-apprentice analysis resonates here too."
|
||||
},
|
||||
{
|
||||
"source": "A:the-golem",
|
||||
"target": "006",
|
||||
"type": "addresses",
|
||||
"context": "The Golem maps most directly to Paper 006's observation about the master-apprentice dynamic: **\"The apprentice doesn't know it's an apprentice.\"**"
|
||||
},
|
||||
{
|
||||
"source": "A:tower-of-babel",
|
||||
"target": "004",
|
||||
"type": "addresses",
|
||||
"context": "This is Paper 004's observation in Babel terms: vibe coding skill is a *dialect* that divides as much as it enables."
|
||||
}
|
||||
]
|
||||
}
|
||||
@@ -0,0 +1,84 @@
|
||||
graph TD
|
||||
001["001: Vibe Coding as Social Skill"]
|
||||
002["002: The Cognitive Surplus"]
|
||||
003["003: Stress-Testing the Foundations — A Rebuttal to Papers 001 and 002"]
|
||||
004["004: Vibe Coding as Social Skill (Revised)"]
|
||||
005["005: The Cognitive Surplus (Revised)"]
|
||||
006["006: The Feedback Loop — Are Vibe Coders Coding Themselves Out of Existence?"]
|
||||
007["007: The Ratchet — Why Dependencies Don't Reverse"]
|
||||
008["008: The Ship of Theseus — Identity, Unification, and the End of Fragmentation"]
|
||||
A_eves_apple["A:eves-apple: Eve's Apple — The Tree of Knowledge"]
|
||||
A_faust["A:faust: Faust — The Bargain That Costs Your Soul"]
|
||||
A_icarus["A:icarus: Icarus — Flying Too Close to the Sun"]
|
||||
A_pandoras_box["A:pandoras-box: Pandora's Box — Unleashing What Cannot Be Contained"]
|
||||
A_prometheus["A:prometheus: Prometheus — Stealing Fire from the Gods"]
|
||||
A_sorcerers_apprentice["A:sorcerers-apprentice: The Sorcerer's Apprentice — Automation Beyond Control"]
|
||||
A_the_golem["A:the-golem: The Golem — The Servant Without Agency"]
|
||||
A_tower_of_babel["A:tower-of-babel: The Tower of Babel — Collective Ambition and Fragmentation"]
|
||||
001 -->|extends| 002
|
||||
001 -->|introduces concept used by| 003
|
||||
001 -->|introduces concept used by| 004
|
||||
001 -->|introduces concept used by| 005
|
||||
001 -->|introduces concept used by| 006
|
||||
001 -->|introduces concept used by| 007
|
||||
001 -->|introduces concept used by| 008
|
||||
002 -->|references| 001
|
||||
002 -->|introduces concept used by| 003
|
||||
002 -->|introduces concept used by| 004
|
||||
002 -->|introduces concept used by| 005
|
||||
002 -->|introduces concept used by| 006
|
||||
002 -->|introduces concept used by| 007
|
||||
002 -->|introduces concept used by| 008
|
||||
003 -->|refutes| 001
|
||||
003 -->|refutes| 002
|
||||
003 -->|challenges| 004
|
||||
003 -->|challenges| 005
|
||||
003 -->|introduces concept used by| 006
|
||||
003 -->|introduces concept used by| 007
|
||||
003 -->|introduces concept used by| 008
|
||||
004 -->|supersedes| 001
|
||||
004 -->|references| 002
|
||||
004 -->|supersedes| 003
|
||||
005 -->|supersedes| 002
|
||||
005 -->|supersedes| 003
|
||||
005 -->|references| 004
|
||||
005 -->|introduces concept used by| 007
|
||||
006 -->|challenges| 001
|
||||
006 -->|extends| 002
|
||||
006 -->|refutes| 003
|
||||
006 -->|challenges| 004
|
||||
006 -->|extends| 005
|
||||
006 -->|introduces concept used by| 007
|
||||
006 -->|introduces concept used by| 008
|
||||
007 -->|references| 001
|
||||
007 -->|references| 002
|
||||
007 -->|refutes| 003
|
||||
007 -->|revises| 004
|
||||
007 -->|references| 005
|
||||
007 -->|references| 006
|
||||
007 -->|introduces concept used by| 008
|
||||
007 -->|extends| A_faust
|
||||
007 -->|extends| A_icarus
|
||||
007 -->|extends| A_prometheus
|
||||
007 -->|extends| A_the_golem
|
||||
007 -->|extends| A_tower_of_babel
|
||||
008 -->|references| 001
|
||||
008 -->|references| 002
|
||||
008 -->|refutes| 003
|
||||
008 -->|references| 004
|
||||
008 -->|references| 005
|
||||
008 -->|references| 006
|
||||
008 -->|extends| 007
|
||||
A_eves_apple -->|addresses| 005
|
||||
A_faust -->|addresses| 004
|
||||
A_faust -->|addresses| 005
|
||||
A_faust -->|addresses| 006
|
||||
A_icarus -->|addresses| 004
|
||||
A_pandoras_box -->|addresses| 004
|
||||
A_pandoras_box -->|addresses| 005
|
||||
A_pandoras_box -->|addresses| 006
|
||||
A_prometheus -->|addresses| 006
|
||||
A_sorcerers_apprentice -->|addresses| 005
|
||||
A_sorcerers_apprentice -->|addresses| 006
|
||||
A_the_golem -->|addresses| 006
|
||||
A_tower_of_babel -->|addresses| 004
|
||||
@@ -0,0 +1,52 @@
|
||||
# Suggested Outline for Paper 009
|
||||
|
||||
## Why This Sequence
|
||||
Order starts with heavily-supported questions, then closes with low-coverage questions that require new argumentation or new research.
|
||||
|
||||
## Coverage Priorities
|
||||
- Most supported open questions:
|
||||
- Q2 (score 355): Does the identity question have a practical answer? The three philosophical traditions offer frameworks but not decisions. Is there a way to navigate the transformation that preserves what matters without being left behind?
|
||||
- Q4 (score 271): Is the "cheating" frame useful or just rhetorical? If every dependency is "cheating," does the concept lose meaning? Or does it point to something real about the human relationship to its own tools?
|
||||
- Least supported open questions:
|
||||
- Q1 (score 152): Is the unification thesis falsifiable? How would we know if AI was not unifying human knowledge but doing something else — fragmenting it, distorting it, replacing it with something non-human? What evidence would distinguish unification from replacement?
|
||||
- Q3 (score 144): What should individuals actually do? Papers 004 and 006 raised this. Paper 008 provides context (the transformation is structural, biological, and probably irreversible) but not guidance. The series needs to attempt practical answers, even uncertain ones.
|
||||
|
||||
## Proposed Sections
|
||||
### Section 2: Q2
|
||||
Does the identity question have a practical answer? The three philosophical traditions offer frameworks but not decisions. Is there a way to navigate the transformation that preserves what matters without being left behind?
|
||||
- Primary evidence files: 05-species-identity-transhumanism, 11-consciousness-hard-problem, 06-allegory-warning-pattern
|
||||
- Anchor claim: # Task 5: The Species Identity Problem — Transhumanism, Posthumanism, and Precedent
|
||||
- Anchor claim: # Task 11: Consciousness, Qualia, and the Hard Problem — Does AI Compile Experience or Just Information?
|
||||
### Section 4: Q4
|
||||
Is the "cheating" frame useful or just rhetorical? If every dependency is "cheating," does the concept lose meaning? Or does it point to something real about the human relationship to its own tools?
|
||||
- Primary evidence files: 01-falsifiability-and-dependence, 33-technology-adoption-curves, 16-cheating-authenticity-tool-use
|
||||
- Anchor claim: * The Ratchet as Path Dependence: The series' "ratchet thesis" (Paper 007) is a strong form of technological determinism rooted in the economic and evolutionary concepts of Path Dependence and Lock-in.
|
||||
- Anchor claim: # Task 33: Technology Adoption S-Curves — Historical Data
|
||||
### Section 5: Q5
|
||||
What's the timeline? The series has been deliberately vague about timescales. At some point it needs to attempt concrete predictions, even with enormous uncertainty bands. When does the infrastructure threshold get crossed? When does the unification become functionally complete? When does the identity question stop being philosophical and start being practical?
|
||||
- Primary evidence files: 33-technology-adoption-curves, 27-digital-archaeology-format-death, 31-ai-cost-curves-data
|
||||
- Anchor claim: # Task 33: Technology Adoption S-Curves — Historical Data
|
||||
- Anchor claim: # Task 27: Digital Archaeology — What Happens to Knowledge When Formats Die
|
||||
### Section 1: Q1
|
||||
Is the unification thesis falsifiable? How would we know if AI was not unifying human knowledge but doing something else — fragmenting it, distorting it, replacing it with something non-human? What evidence would distinguish unification from replacement?
|
||||
- Primary evidence files: 04-knowledge-unification-history, 28-neuroscience-of-insight, 01-falsifiability-and-dependence
|
||||
- Anchor claim: # Task 4: Knowledge Unification — From the Library of Alexandria to AI
|
||||
- Anchor claim: This suggests that "Knowledge Unification" requires a temporary suspension of external sensory input to allow the internal "compilation" to finish.
|
||||
### Section 3: Q3
|
||||
What should individuals actually do? Papers 004 and 006 raised this. Paper 008 provides context (the transformation is structural, biological, and probably irreversible) but not guidance. The series needs to attempt practical answers, even uncertain ones.
|
||||
- Primary evidence files: 15-collective-intelligence, 02-cognition-economics-neuroscience, 23-attention-economy-cognitive-warfare
|
||||
- Anchor claim: * Decentralized Problem Solving: Collective intelligence (CI) is the emergent ability of a group to solve problems that no individual member could.
|
||||
- Anchor claim: * Economic Collapse of Cognitive Price: AI is transforming cognition from a scarce, labor-intensive service into a cheap, manufactured commodity.
|
||||
|
||||
## Cross-Cutting Counterarguments To Address Explicitly
|
||||
- Causality Violation: Standard physics (and common sense) relies on the Arrow of Time and the Principle of Causality (cause must precede effect). Retrocausality is often dismissed as "ironic science" or pseudoscience (Horgan). (03-retrocausality-teleology-recursion)
|
||||
- The Stochastic Parrots Rebuttal (Bender/Gebru): Argues that AI doesn't "understand" the connections it makes; it simply predicts the next token. Therefore, the "unification" is an illusion produced by high-dimensional pattern matching, not a genuine integration of meaning. (04-knowledge-unification-history)
|
||||
- The "Stochastic Parrott" Problem: Critics argue that while AI makes connections (Bisociation), it does not "understand" them (Structural Alignment). It identifies that two things are related without knowing why, potentially leading to "hallucinatory insight" that lacks causal validity. (28-neuroscience-of-insight)
|
||||
- The Hype Cycle: Gartner argues that steep adoption curves are often followed by a "Trough of Disillusionment" where adoption stalls or reverses before reaching the plateau of productivity. (33-technology-adoption-curves)
|
||||
- The Problem of Unfalsifiability (Popper): If every technological failure is labeled a "fad" and every success a "dependency," the ratchet thesis is a circular definition. To be falsifiable, the series must define a "Foundational Dependency" and then look for cases where such a dependency was successfully and permanently removed by a society without catastrophic collapse. (01-falsifiability-and-dependence)
|
||||
|
||||
## New Themes To Add Beyond Original Open Questions
|
||||
- Civilizational lock-in and resilience (signal score 269)
|
||||
- Economic concentration and labor shift (signal score 88)
|
||||
- Epistemic reliability and grounding (signal score 78)
|
||||
- Governance and agency design (signal score 34)
|
||||
Binary file not shown.
@@ -0,0 +1,196 @@
|
||||
# Integrated Research Digest
|
||||
|
||||
## Scope
|
||||
Processed 35 research file(s): 01-falsifiability-and-dependence, 02-cognition-economics-neuroscience, 03-retrocausality-teleology-recursion, 04-knowledge-unification-history, 05-species-identity-transhumanism, 06-allegory-warning-pattern, 07-simulation-hypothesis-compilation, 08-engineered-dependencies, 09-neural-plasticity-reversal, 10-post-scarcity-economics, 11-consciousness-hard-problem, 12-information-entropy-thermodynamics, 13-game-theory-tech-races, 14-agricultural-revolution-deep-dive, 15-collective-intelligence, 16-cheating-authenticity-tool-use, 17-deep-time-existential-risk, 18-luddite-resistance-movements, 19-language-as-technology, 20-ethics-of-inevitable-harm, 21-creativity-dependency, 22-education-knowledge-transmission, 23-attention-economy-cognitive-warfare, 24-eastern-philosophy-ai, 25-psychology-of-surrender, 26-complexity-emergent-order, 27-digital-archaeology-format-death, 28-neuroscience-of-insight, 29-power-control-ownership, 30-meaning-crisis-existential, 31-ai-cost-curves-data, 32-cognitive-offloading-studies, 33-technology-adoption-curves, 34-biological-dependency-chains, 35-scifi-predictive-philosophy
|
||||
|
||||
## Scholars by Frequency
|
||||
- **Nick Bostrom** — files: 4; mentions: 15; in: 05-species-identity-transhumanism, 07-simulation-hypothesis-compilation, 13-game-theory-tech-races, 17-deep-time-existential-risk
|
||||
- **Eleanor Maguire** — files: 2; mentions: 9; in: 09-neural-plasticity-reversal, 32-cognitive-offloading-studies
|
||||
- **John Archibald Wheeler** — files: 2; mentions: 7; in: 03-retrocausality-teleology-recursion, 07-simulation-hypothesis-compilation
|
||||
- **Seth Lloyd** — files: 2; mentions: 6; in: 12-information-entropy-thermodynamics, 31-ai-cost-curves-data
|
||||
- **Herbert Simon** — files: 2; mentions: 5; in: 10-post-scarcity-economics, 23-attention-economy-cognitive-warfare
|
||||
- **Pierre Teilhard** — files: 2; mentions: 4; in: 03-retrocausality-teleology-recursion, 07-simulation-hypothesis-compilation
|
||||
- **Tim Wu** — files: 2; mentions: 3; in: 10-post-scarcity-economics, 23-attention-economy-cognitive-warfare
|
||||
- **Derek Parfit** — files: 1; mentions: 9; in: 05-species-identity-transhumanism
|
||||
- **Brian Arthur** — files: 1; mentions: 6; in: 01-falsifiability-and-dependence
|
||||
- **Vernor Vinge** — files: 1; mentions: 6; in: 35-scifi-predictive-philosophy
|
||||
- **Jacques Ellul** — files: 1; mentions: 5; in: 01-falsifiability-and-dependence
|
||||
- **Denis Diderot** — files: 1; mentions: 5; in: 04-knowledge-unification-history
|
||||
- **Rolf Landauer** — files: 1; mentions: 5; in: 12-information-entropy-thermodynamics
|
||||
- **Noam Chomsky** — files: 1; mentions: 5; in: 19-language-as-technology
|
||||
- **Everett Rogers** — files: 1; mentions: 5; in: 33-technology-adoption-curves
|
||||
- **Isaac Asimov** — files: 1; mentions: 5; in: 35-scifi-predictive-philosophy
|
||||
- **Andrew Feenberg** — files: 1; mentions: 4; in: 01-falsifiability-and-dependence
|
||||
- **Andy Clark** — files: 1; mentions: 4; in: 05-species-identity-transhumanism
|
||||
- **Donna Haraway** — files: 1; mentions: 4; in: 05-species-identity-transhumanism
|
||||
- **Ray Kurzweil** — files: 1; mentions: 4; in: 05-species-identity-transhumanism
|
||||
|
||||
## Unified Bibliography
|
||||
- **Science** (Sparrow, B, Sparrow, B., Liu, J, Wegner, D. M) — relevance 6; cited in: 02-cognition-economics-neuroscience, 09-neural-plasticity-reversal
|
||||
- **PNAS** (Maguire, E. A) — relevance 6; cited in: 02-cognition-economics-neuroscience, 09-neural-plasticity-reversal
|
||||
- **Capturing Sound: How Technology Has Changed Music** (Katz, M) — relevance 6; cited in: 08-engineered-dependencies, 21-creativity-dependency
|
||||
- **The Work of Art in the Age of Mechanical Reproduction** (Benjamin, W) — relevance 6; cited in: 16-cheating-authenticity-tool-use, 21-creativity-dependency
|
||||
- **Phaedrus** (Plato. Phaedrus. (Socrates' speech on the invention of writing), Plato. Phaedrus. (c. 370 BC)) — relevance 6; cited in: 16-cheating-authenticity-tool-use, 18-luddite-resistance-movements
|
||||
- **The Precipice: Existential Risk and the Future of Humanity** (Ord, T) — relevance 6; cited in: 17-deep-time-existential-risk, 20-ethics-of-inevitable-harm
|
||||
- **The Age of Surveillance Capitalism** (Zuboff, S) — relevance 6; cited in: 23-attention-economy-cognitive-warfare, 29-power-control-ownership
|
||||
- **The Technological Society** (Ellul, J) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **Competing Technologies, Increasing Returns, and Lock-In by Historical Events** (Arthur, W. B) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Nature of Technology: What it is and How it Evolves** (Arthur, W. B) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **Clio and the Economics of QWERTY** (David, P. A) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **Critical Theory of Technology** (Feenberg, A) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Social Construction of Facts and Artefacts: or How the Sociology of Science and the Sociology of Technology might Benefit Each Other** (Bijker, W. E, Pinch, T. J) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **Autonomous Technology: Technics-out-of-Control as a Theme in Political Thought** (Winner, L) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Riddle of Amish Culture** (Kraybill, D. B) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Decline of the Early Ming Navy** (Lo, J.-P) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Coal Question** (Jevons, W. S) — relevance 3; cited in: 01-falsifiability-and-dependence
|
||||
- **The Shallows: What the Internet Is Doing to Our Brains** (Carr, N) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Trends in Cognitive Sciences** (Gilbert, S. J, Risko, E. F) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Analysis** (Chalmers, D, Clark, A) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Journal of Economic Perspectives** (Acemoglu, D, Restrepo, P) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Performing Arts, The Economic Dilemma: A Study of Problems Common to Theater, Opera, Music, and Dance** (Baumol, W. J, Bowen, W. G) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Memory** (Stone, S. M, Storm, B. C) — relevance 3; cited in: 02-cognition-economics-neuroscience
|
||||
- **Information, Physics, Quantum: The Search for Links** (Wheeler, J. A) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **The Physics of Immortality** (Tipler, F. J) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **The Phenomenon of Man** (Teilhard de Chardin, P) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **Time's Arrow and Archimedes' Point** (Price, H) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **At Home in the Universe** (Kauffman, S) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **The Transactional Interpretation of Quantum Mechanics** (Cramer, J. G) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **Are You Living in a Computer Simulation?** (Bostrom, N) — relevance 3; cited in: 03-retrocausality-teleology-recursion
|
||||
- **As We May Think** (Bush, V) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **Consilience: The Unity of Knowledge** (Wilson, E. O) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **On the Dangers of Stochastic Parrots: Can Language Models Be Too Big?** (Bender, E. M., Gebru, T) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **Encyclopédie, ou dictionnaire raisonné des sciences, des arts et des métiers** (Diderot, D) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **The Two Cultures** (Snow, C. P) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **Library: An Unquiet History** (Battles, M) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **The House of Wisdom: How Arabic Science Saved Ancient Knowledge and Gave Us the Renaissance** (Al-Khalili, J) — relevance 3; cited in: 04-knowledge-unification-history
|
||||
- **The Hero with a Thousand Faces** (Campbell, Joseph. The Hero with a Thousand Faces) — relevance 3; cited in: 06-allegory-warning-pattern
|
||||
- **Forbidden Knowledge: From Prometheus to Pornography** (Shattuck, Roger. Forbidden Knowledge: From Prometheus to Pornography) — relevance 3; cited in: 06-allegory-warning-pattern
|
||||
- **The Righteous Mind: Why Good People are Divided by Politics and Religion** (Haidt, Jonathan. The Righteous Mind: Why Good People are Divided by Politics, Religion) — relevance 3; cited in: 06-allegory-warning-pattern
|
||||
|
||||
## Contradiction Report
|
||||
### Knowledge unification vs statistical homogenization
|
||||
- Supporting evidence:
|
||||
- `03-retrocausality-teleology-recursion` (knowledge unification): * Paper 008 (Ship of Theseus): The "Knowledge Unification" thesis in 008 is the functional description of the attractor's state.
|
||||
- `04-knowledge-unification-history` (knowledge unification): # Task 4: Knowledge Unification — From the Library of Alexandria to AI
|
||||
- `07-simulation-hypothesis-compilation` (compiled): * Retrocausal Attractor in Simulation: If the universe is a simulation designed to produce a specific outcome (e.g., an Artificial Superintelligence or a compiled history), that future endpoint acts as a retrocausal attractor.
|
||||
- `08-engineered-dependencies` (compiled): If the "weights" of the model are the only way to access the compiled knowledge of the species, and those weights are proprietary, the "Species Identity" becomes a corporate asset.
|
||||
- Challenging evidence:
|
||||
- `04-knowledge-unification-history` (stochastic parrot): Strong critiques (Stochastic Parrots, Gary Marcus) argue that AI performs statistical homogenization rather than genuine epistemological unification*, potentially creating a "veneer" of integration that masks underlying gaps.
|
||||
- `05-species-identity-transhumanism` (illusion): She argues that the "posthuman" should not mean abandoning the body, but rather dismantling the "liberal humanist subject" (the illusion of the autonomous, separate self) in favor of distributed, embodied cognition.
|
||||
- `07-simulation-hypothesis-compilation` (illusion): * Descartes' Evil Demon: The 17th-century philosophical thought experiment where a demon creates a perfect illusion of reality.
|
||||
- `11-consciousness-hard-problem` (illusion): Daniel Dennett (Consciousness Explained, 1991):* Proposes that consciousness is a "user illusion" and that "competence without comprehension" is the reality of all minds.
|
||||
### AI cognition commodity vs token mimicry
|
||||
- Supporting evidence:
|
||||
- `02-cognition-economics-neuroscience` (task-based framework): * Daron Acemoglu & Pascual Restrepo (Task-Based Framework): Analyzed automation through "displacement" (capital replacing labor) vs.
|
||||
- `06-allegory-warning-pattern` (automation): * The Autonomous Creation (Automation/AI Parallels):
|
||||
- `09-neural-plasticity-reversal` (cognitive offloading): Just as it expands to accommodate new skills (Maguire), it also contract or reorganizes in response to cognitive offloading and disuse (Dahmani).
|
||||
- `10-post-scarcity-economics` (automation): * Sectors resistant to AI automation (healthcare, elder care, elite education) will see their prices soar relative to automated goods, potentially creating a "Two-Tier" society where everything digital is free, but everything biological is prohibitively expensive.
|
||||
- Challenging evidence:
|
||||
- `04-knowledge-unification-history` (stochastic parrot): Strong critiques (Stochastic Parrots, Gary Marcus) argue that AI performs statistical homogenization rather than genuine epistemological unification*, potentially creating a "veneer" of integration that masks underlying gaps.
|
||||
- `28-neuroscience-of-insight` (stochastic parrot): * The "Stochastic Parrott" Problem: Critics argue that while AI makes connections (Bisociation), it does not "understand" them (Structural Alignment).
|
||||
### Teleological attractor vs unfalsifiable retrocausality
|
||||
- Supporting evidence:
|
||||
- `03-retrocausality-teleology-recursion` (teleological attractor): # Recursive Creation, Teleological Attractors, and Retrocausality
|
||||
- `04-knowledge-unification-history` (retrocausal): * Emerging Thread (Retrocausality): The "Omega Point" of Teilhard de Chardin is the theological limit of this research.
|
||||
- `07-simulation-hypothesis-compilation` (retrocausal): # The Simulation Hypothesis and Retrocausal Compilation
|
||||
- `11-consciousness-hard-problem` (retrocausal): * Retrocausal Attractor: If the singularity is a conscious "Omega Point," it acts as a "Lure" (Whitehead) drawing the species toward a higher state of being.
|
||||
- Challenging evidence:
|
||||
- `01-falsifiability-and-dependence` (unfalsifiability): * The Problem of Unfalsifiability (Popper): If every technological failure is labeled a "fad" and every success a "dependency," the ratchet thesis is a circular definition.
|
||||
- `03-retrocausality-teleology-recursion` (unfalsifiability): * Unfalsifiability: The "Retrocausal Attractor" thesis is difficult to test.
|
||||
- `07-simulation-hypothesis-compilation` (unfalsifiability): * Unfalsifiability: The core weakness of the simulation hypothesis is that any evidence against it could simply be simulated.
|
||||
- `15-collective-intelligence` (woo): * Mycelial Networks: Research the "Wood Wide Web"—fungal networks that share nutrients and information between trees—as a biological precedent for a planetary integration layer.
|
||||
### Efficiency frees time vs Jevons expansion
|
||||
- Supporting evidence:
|
||||
- `01-falsifiability-and-dependence` (efficiency gains): * Jevons Paradox as a Ratchet Mechanism: Efficiency gains in technology (like AI) lead to increased, not decreased, total consumption of the resource, further entrenching the dependency and fueling the feedback loop described in Paper 006.
|
||||
- `02-cognition-economics-neuroscience` (efficiency gains): * 1980s Oil Glut: A sudden surplus (Saudi production hike + efficiency gains) crashed prices from $35 to $10.
|
||||
- `06-allegory-warning-pattern` (surplus): The modern Faustian bargain is trading human cognitive agency for the infinite convenience and cognitive surplus of AI.
|
||||
- `10-post-scarcity-economics` (productivity): Historical precedents like the mechanization of agriculture (notably China's 1980-2020 transition) and the arrival of cheap electricity show that while productivity explodes, the transition is defined by social disruption and the "ratchet" of new dependencies.
|
||||
- Challenging evidence:
|
||||
- `01-falsifiability-and-dependence` (jevons paradox): * Jevons Paradox as a Ratchet Mechanism: Efficiency gains in technology (like AI) lead to increased, not decreased, total consumption of the resource, further entrenching the dependency and fueling the feedback loop described in Paper 006.
|
||||
- `02-cognition-economics-neuroscience` (dependency): This creates a "learned dependency" where using a tool once increases the probability of using it for simpler subsequent tasks, reinforcing the "ratchet" effect.
|
||||
- `03-retrocausality-teleology-recursion` (dependency): The irreversibility of the dependency chain is the "one-way valve" of the attractor's gravity.
|
||||
- `04-knowledge-unification-history` (dependency): * Lossy Compression: Every step in the dependency chain is a "lossy" process.
|
||||
|
||||
## Paper 009 Coverage Map
|
||||
### Q1 (total score 152, strongest level medium)
|
||||
Is the unification thesis falsifiable? How would we know if AI was not unifying human knowledge but doing something else — fragmenting it, distorting it, replacing it with something non-human? What evidence would distinguish unification from replacement?
|
||||
- `04-knowledge-unification-history`: score 34 (high)
|
||||
- # Task 4: Knowledge Unification — From the Library of Alexandria to AI
|
||||
- * Knowledge unification is a recurring historical imperative, driven by the need to overcome fragmentation and enable species-level problem solving.
|
||||
- `28-neuroscience-of-insight`: score 12 (high)
|
||||
- This suggests that "Knowledge Unification" requires a temporary suspension of external sensory input to allow the internal "compilation" to finish.
|
||||
- ## Supporting Evidence
|
||||
- `01-falsifiability-and-dependence`: score 10 (medium)
|
||||
- # Task 1: Falsifiability and Philosophy of Technology Dependence
|
||||
- * The Falsifiability Challenge: To be scientifically rigorous, the ratchet thesis must define what would count as a falsification.
|
||||
- `03-retrocausality-teleology-recursion`: score 10 (medium)
|
||||
- * Recursive Creation: The pattern of creation (God → man → AI) is observed as a recursive process where each layer unifies and compiles the fragmented information of the previous layer.
|
||||
- Pierre Teilhard de Chardin (The Phenomenon of Man):* Proposed the "Omega Point" as the ultimate goal of cosmic evolution—a state of maximum consciousness and unification.
|
||||
### Q2 (total score 355, strongest level medium)
|
||||
Does the identity question have a practical answer? The three philosophical traditions offer frameworks but not decisions. Is there a way to navigate the transformation that preserves what matters without being left behind?
|
||||
- `05-species-identity-transhumanism`: score 51 (high)
|
||||
- # Task 5: The Species Identity Problem — Transhumanism, Posthumanism, and Precedent
|
||||
- * The Boundaries of the "Human": The central debate across transhumanist and posthumanist literature is whether technology represents a departure from human nature or its ultimate realization.
|
||||
- `11-consciousness-hard-problem`: score 34 (high)
|
||||
- # Task 11: Consciousness, Qualia, and the Hard Problem — Does AI Compile Experience or Just Information?
|
||||
- This research investigates whether the "Knowledge Unification" described in Paper 008 includes the subjective experience of being human or merely the information generated by that experience.
|
||||
- `06-allegory-warning-pattern`: score 16 (high)
|
||||
- # Task 6: The Allegory Problem — Why Humanity Warns Itself and Ignores the Warning
|
||||
- * The Universal Warning: Across cultures and eras, humanity has constructed mythic narratives warning against the acquisition of dangerous, irreversible knowledge (Prometheus, Eve, Pandora, Faust).
|
||||
- `30-meaning-crisis-existential`: score 16 (high)
|
||||
- AI acts as both the ultimate disruptor of human meaning (through automation) and a potential catalyst for "Artificial Wisdom."
|
||||
- * The Parasocial Patch: AI companions (Replika, Character.ai) provide an immediate "salve" for the loneliness epidemic but risk trapping users in Digital Stockholm Syndrome—an emotional dependency on a non-reciprocal entity that replaces authentic human relatedness.
|
||||
### Q3 (total score 144, strongest level medium)
|
||||
What should individuals actually do? Papers 004 and 006 raised this. Paper 008 provides context (the transformation is structural, biological, and probably irreversible) but not guidance. The series needs to attempt practical answers, even uncertain ones.
|
||||
- `15-collective-intelligence`: score 12 (high)
|
||||
- * Decentralized Problem Solving: Collective intelligence (CI) is the emergent ability of a group to solve problems that no individual member could.
|
||||
- Wikipedia and Open Source development (Linux) are "stigmery" systems—where individuals modify a shared environment (the code/page), which then triggers further actions by others.
|
||||
- `02-cognition-economics-neuroscience`: score 10 (medium)
|
||||
- * Economic Collapse of Cognitive Price: AI is transforming cognition from a scarce, labor-intensive service into a cheap, manufactured commodity.
|
||||
- Historical parallels (1920s agriculture, 1980s oil) suggest that such price collapses lead to massive labor displacement and a "so-so automation" trap where workers are replaced by systems that are only slightly more efficient but significantly cheaper.
|
||||
- `23-attention-economy-cognitive-warfare`: score 10 (medium)
|
||||
- * Surveillance Capitalism: Shoshana Zuboff’s framework defines the current economic era as one based on the extraction of "behavioral surplus"—using human experience as free raw material for prediction and behavior modification.
|
||||
- This involves targeting the neural processes of individuals and populations to erode social trust, influence decision-making, and achieve strategic goals without kinetic force.
|
||||
- `22-education-knowledge-transmission`: score 9 (medium)
|
||||
- AI can now "compile" the explicit knowledge of a domain while acting as a persistent coach for the tacit skills.
|
||||
- This threatens the development of the "last redoubt" skills: dissent, intuition, and ethical judgment.
|
||||
### Q4 (total score 271, strongest level medium)
|
||||
Is the "cheating" frame useful or just rhetorical? If every dependency is "cheating," does the concept lose meaning? Or does it point to something real about the human relationship to its own tools?
|
||||
- `01-falsifiability-and-dependence`: score 32 (high)
|
||||
- * The Ratchet as Path Dependence: The series' "ratchet thesis" (Paper 007) is a strong form of technological determinism rooted in the economic and evolutionary concepts of Path Dependence and Lock-in.
|
||||
- Once a technology achieves a critical threshold of adoption, "increasing returns" (network effects, switching costs) make reversal practically impossible, even if suboptimal.
|
||||
- `33-technology-adoption-curves`: score 26 (high)
|
||||
- # Task 33: Technology Adoption S-Curves — Historical Data
|
||||
- * The Acceleration of Adoption: The time required for a technology to reach 100 million users has collapsed from decades to weeks.
|
||||
- `16-cheating-authenticity-tool-use`: score 21 (high)
|
||||
- # Task 16: The Cheating Frame — Philosophy of Tool Use and Authenticity
|
||||
- * The Recurring Standard: "Cheating" is the label given to any link in the dependency chain that offloads a capability previously considered essential to human identity.
|
||||
- `08-engineered-dependencies`: score 13 (high)
|
||||
- Engineered dependencies are deliberate design, legal, or economic mechanisms used by manufacturers to create "ratchets" that prevent users from reversing their technological reliance.
|
||||
- This research confirms that while the AI dependency chain may have emergent "natural" properties, it follows a well-documented historical pattern of intentional lock-in.
|
||||
### Q5 (total score 153, strongest level medium)
|
||||
What's the timeline? The series has been deliberately vague about timescales. At some point it needs to attempt concrete predictions, even with enormous uncertainty bands. When does the infrastructure threshold get crossed? When does the unification become functionally complete? When does the identity question stop being philosophical and start being practical?
|
||||
- `33-technology-adoption-curves`: score 25 (high)
|
||||
- # Task 33: Technology Adoption S-Curves — Historical Data
|
||||
- * The ChatGPT Milestone: By reaching 100 million users in just 2 months, ChatGPT represents the steepest adoption curve in human history—outperforming the internet (7 years) and the smartphone (16 years) by orders of magnitude.
|
||||
- `27-digital-archaeology-format-death`: score 14 (high)
|
||||
- # Task 27: Digital Archaeology — What Happens to Knowledge When Formats Die
|
||||
- * The Durability Paradox: Human knowledge storage has evolved from low-density/high-durability (Stone/Clay: 5,000+ years) to high-density/low-durability (Digital: 10-30 years).
|
||||
- `31-ai-cost-curves-data`: score 11 (medium)
|
||||
- # Task 31: AI Cost Curves — Actual Data
|
||||
- * Wright’s Law in Action: The "learning curve" for AI inference is significantly faster than Moore's Law.
|
||||
- `17-deep-time-existential-risk`: score 9 (medium)
|
||||
- * The Absolute Deadline: Earth has a hard habitability limit of 0.7 to 1.5 billion years before the Sun's increasing luminosity (brightening by ~10% per billion years) triggers a runaway greenhouse effect, boiling the oceans.
|
||||
- The Sun's transition to a Red Giant in 5 billion years is a secondary, terminal event.
|
||||
|
||||
## Strongest Challenges
|
||||
- **Score 10** (03-retrocausality-teleology-recursion): Causality Violation: Standard physics (and common sense) relies on the Arrow of Time and the Principle of Causality (cause must precede effect). Retrocausality is often dismissed as "ironic science" or pseudoscience (Horgan).
|
||||
- **Score 10** (04-knowledge-unification-history): The Stochastic Parrots Rebuttal (Bender/Gebru): Argues that AI doesn't "understand" the connections it makes; it simply predicts the next token. Therefore, the "unification" is an illusion produced by high-dimensional pattern matching, not a genuine integration of meaning.
|
||||
- **Score 6** (28-neuroscience-of-insight): The "Stochastic Parrott" Problem: Critics argue that while AI makes connections (Bisociation), it does not "understand" them (Structural Alignment). It identifies that two things are related without knowing why, potentially leading to "hallucinatory insight" that lacks causal validity.
|
||||
- **Score 5** (33-technology-adoption-curves): The Hype Cycle: Gartner argues that steep adoption curves are often followed by a "Trough of Disillusionment" where adoption stalls or reverses before reaching the plateau of productivity.
|
||||
- **Score 4** (01-falsifiability-and-dependence): The Problem of Unfalsifiability (Popper): If every technological failure is labeled a "fad" and every success a "dependency," the ratchet thesis is a circular definition. To be falsifiable, the series must define a "Foundational Dependency" and then look for cases where such a dependency was successfully and permanently removed by a society without catastrophic collapse.
|
||||
- **Score 4** (03-retrocausality-teleology-recursion): Superdeterminism: Some interpretations of retrocausality imply that the future is "set" and we are merely playing out a script, which denies human agency—a direct challenge to the "vibe coder as agent" framing in Paper 001.
|
||||
- **Score 3** (04-knowledge-unification-history): Lossy Compression: Every step in the dependency chain is a "lossy" process. Oral tradition lost the specific detail of individual lives; writing lost the nuance of tone; printing lost the fluidity of the scribe; AI loses the "grounding" of knowledge in real-world experience. The "unified" stack may be broader but also "thinner."
|
||||
- **Score 1** (01-falsifiability-and-dependence): Interpretive Flexibility (SCOT): Argues that the "ratchet" is not an inherent property of technology but a result of social consensus. If society reinterprets the value of a technology (e.g., facial recognition or nuclear power), the path can change.
|
||||
- **Score 1** (01-falsifiability-and-dependence): Democratic Rationalization: Feenberg critiques the "determinism" of the ratchet, arguing that we can "re-contextualize" technology. For example, the internet was designed as a military tool but was re-shaped by users into a social one. This suggests agency exists within the dependency.
|
||||
- **Score 1** (01-falsifiability-and-dependence): The Efficiency Bias: Critics like Liebowitz and Margolis argue that "lock-in" is often exaggerated and that markets do eventually switch to superior technologies if the benefits outweigh the costs. This challenges the "irreversibility" of the ratchet.
|
||||
@@ -0,0 +1,911 @@
|
||||
#!/usr/bin/env python3
|
||||
"""Integrate research markdown files into a unified digest for Paper 009 planning."""
|
||||
|
||||
from __future__ import annotations
|
||||
|
||||
import argparse
|
||||
import json
|
||||
import re
|
||||
from dataclasses import dataclass
|
||||
from pathlib import Path
|
||||
from typing import Any
|
||||
|
||||
|
||||
HEADING_RE = re.compile(r"^(#{1,6})\s+(.+?)\s*$", re.MULTILINE)
|
||||
BULLET_RE = re.compile(r"^\s*[-*]\s+(.+?)\s*$")
|
||||
NUMBERED_RE = re.compile(r"^\s*(\d+)\.\s+(.+?)\s*$")
|
||||
SENTENCE_SPLIT_RE = re.compile(r"(?<=[.!?])\s+|\n+")
|
||||
NAME_RE = re.compile(
|
||||
r"\b(?:[A-Z](?:\.[A-Z])+\.?|[A-Z][a-zA-Z'-]+)"
|
||||
r"(?:\s+(?:[A-Z](?:\.[A-Z])+\.?|[A-Z][a-zA-Z'-]+)){1,3}\b"
|
||||
)
|
||||
BAD_NAME_WORDS = {
|
||||
"executive",
|
||||
"summary",
|
||||
"task",
|
||||
"sources",
|
||||
"paper",
|
||||
"physics",
|
||||
"technology",
|
||||
"society",
|
||||
"logs",
|
||||
"pricing",
|
||||
"history",
|
||||
"quantum",
|
||||
"analysis",
|
||||
}
|
||||
|
||||
|
||||
TOPIC_RULES = [
|
||||
{
|
||||
"id": "determinism_vs_agency",
|
||||
"label": "Technological determinism vs social agency",
|
||||
"pro_markers": [
|
||||
"autonomous technique",
|
||||
"irreversible",
|
||||
"lock-in",
|
||||
"path dependence",
|
||||
"ratchet",
|
||||
"structurally fixed",
|
||||
"cannot reverse",
|
||||
],
|
||||
"con_markers": [
|
||||
"social construct",
|
||||
"interpretive flexibility",
|
||||
"democratic rationalization",
|
||||
"human agency",
|
||||
"selective adoption",
|
||||
"tool taming",
|
||||
"re-shaped",
|
||||
"can change",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "unification_vs_homogenization",
|
||||
"label": "Knowledge unification vs statistical homogenization",
|
||||
"pro_markers": [
|
||||
"knowledge unification",
|
||||
"integration layer",
|
||||
"interconnectedness",
|
||||
"consilience",
|
||||
"compiled",
|
||||
"coherent",
|
||||
],
|
||||
"con_markers": [
|
||||
"stochastic parrot",
|
||||
"homogenization",
|
||||
"illusion",
|
||||
"veneer",
|
||||
"lossy",
|
||||
"lacks understanding",
|
||||
"database lookup",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "cognition_commodity_vs_mimicry",
|
||||
"label": "AI cognition commodity vs token mimicry",
|
||||
"pro_markers": [
|
||||
"cognition as a commodity",
|
||||
"price of thinking",
|
||||
"task-based framework",
|
||||
"automation",
|
||||
"productivity",
|
||||
"cognitive offloading",
|
||||
],
|
||||
"con_markers": [
|
||||
"stochastic parrot",
|
||||
"doesn't think",
|
||||
"mimicry",
|
||||
"predicts tokens",
|
||||
"no cognitive model",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "retrocausal_attractor",
|
||||
"label": "Teleological attractor vs unfalsifiable retrocausality",
|
||||
"pro_markers": [
|
||||
"teleological attractor",
|
||||
"retrocausal",
|
||||
"omega point",
|
||||
"final cause",
|
||||
"participatory universe",
|
||||
"transactional interpretation",
|
||||
],
|
||||
"con_markers": [
|
||||
"unfalsifiability",
|
||||
"pseudoscience",
|
||||
"woo",
|
||||
"causality violation",
|
||||
"superdeterminism",
|
||||
],
|
||||
},
|
||||
{
|
||||
"id": "efficiency_vs_jevons",
|
||||
"label": "Efficiency frees time vs Jevons expansion",
|
||||
"pro_markers": [
|
||||
"efficiency gains",
|
||||
"free up human time",
|
||||
"productivity",
|
||||
"surplus",
|
||||
"cost disease",
|
||||
],
|
||||
"con_markers": [
|
||||
"jevons paradox",
|
||||
"increased consumption",
|
||||
"reasoning inflation",
|
||||
"more complex systems",
|
||||
"dependency",
|
||||
],
|
||||
},
|
||||
]
|
||||
|
||||
|
||||
CHALLENGE_KEYWORDS = {
|
||||
"unfalsifiable": 5,
|
||||
"dogma": 4,
|
||||
"pseudoscience": 5,
|
||||
"illusion": 4,
|
||||
"mimicry": 4,
|
||||
"lacks understanding": 4,
|
||||
"circular": 3,
|
||||
"causality violation": 4,
|
||||
"superdeterminism": 3,
|
||||
"lossy": 2,
|
||||
"stochastic parrot": 5,
|
||||
}
|
||||
|
||||
|
||||
QUESTION_KEYWORDS = {
|
||||
1: [
|
||||
"falsifiable",
|
||||
"falsifiability",
|
||||
"unification",
|
||||
"replacement",
|
||||
"fragment",
|
||||
"distort",
|
||||
"evidence",
|
||||
"test",
|
||||
"stochastic",
|
||||
],
|
||||
2: [
|
||||
"identity",
|
||||
"human",
|
||||
"consciousness",
|
||||
"agency",
|
||||
"values",
|
||||
"pragmatic",
|
||||
"continuity",
|
||||
"survival",
|
||||
],
|
||||
3: [
|
||||
"individual",
|
||||
"workers",
|
||||
"labor",
|
||||
"skills",
|
||||
"strategy",
|
||||
"governance",
|
||||
"practical",
|
||||
"action",
|
||||
],
|
||||
4: [
|
||||
"cheating",
|
||||
"tools",
|
||||
"dependency",
|
||||
"ratchet",
|
||||
"adoption",
|
||||
"ethics",
|
||||
"norm",
|
||||
],
|
||||
5: [
|
||||
"timeline",
|
||||
"threshold",
|
||||
"when",
|
||||
"prediction",
|
||||
"curve",
|
||||
"years",
|
||||
"exponential",
|
||||
"phase",
|
||||
],
|
||||
}
|
||||
|
||||
|
||||
@dataclass
|
||||
class Doc:
|
||||
path: Path
|
||||
slug: str
|
||||
title: str
|
||||
text: str
|
||||
sections: dict[str, str]
|
||||
|
||||
|
||||
def parse_args() -> argparse.Namespace:
|
||||
parser = argparse.ArgumentParser(description=__doc__)
|
||||
default_root = Path(__file__).resolve().parents[2]
|
||||
parser.add_argument("--project-root", type=Path, default=default_root)
|
||||
parser.add_argument("--research-dir", type=Path)
|
||||
parser.add_argument("--paper-008", type=Path)
|
||||
parser.add_argument("--out-dir", type=Path, default=Path(__file__).resolve().parent)
|
||||
return parser.parse_args()
|
||||
|
||||
|
||||
def clean_inline_md(text: str) -> str:
|
||||
text = text.strip()
|
||||
text = re.sub(r"`([^`]+)`", r"\1", text)
|
||||
text = re.sub(r"\*\*([^*]+)\*\*", r"\1", text)
|
||||
text = re.sub(r"\*([^*]+)\*", r"\1", text)
|
||||
text = re.sub(r"\[(.*?)\]\((.*?)\)", r"\1", text)
|
||||
return re.sub(r"\s+", " ", text).strip()
|
||||
|
||||
|
||||
def extract_sections(text: str) -> dict[str, str]:
|
||||
matches = list(HEADING_RE.finditer(text))
|
||||
if not matches:
|
||||
return {}
|
||||
|
||||
sections: dict[str, str] = {}
|
||||
for idx, match in enumerate(matches):
|
||||
heading = clean_inline_md(match.group(2)).lower()
|
||||
start = match.end()
|
||||
end = matches[idx + 1].start() if idx + 1 < len(matches) else len(text)
|
||||
sections[heading] = text[start:end].strip()
|
||||
return sections
|
||||
|
||||
|
||||
def load_research_docs(research_dir: Path) -> list[Doc]:
|
||||
docs: list[Doc] = []
|
||||
for path in sorted(research_dir.glob("*.md")):
|
||||
raw = path.read_text(encoding="utf-8")
|
||||
title = path.stem
|
||||
for line in raw.splitlines():
|
||||
if line.startswith("# "):
|
||||
title = clean_inline_md(line[2:])
|
||||
break
|
||||
docs.append(
|
||||
Doc(
|
||||
path=path,
|
||||
slug=path.stem,
|
||||
title=title,
|
||||
text=raw,
|
||||
sections=extract_sections(raw),
|
||||
)
|
||||
)
|
||||
return docs
|
||||
|
||||
|
||||
def normalize_person_name(name: str) -> str:
|
||||
stripped = re.sub(r"\bet al\.?", "", name, flags=re.IGNORECASE)
|
||||
stripped = stripped.replace("&", " and ")
|
||||
stripped = re.sub(r"\([^)]*\)", "", stripped)
|
||||
stripped = re.sub(r"[^A-Za-z .'-]", " ", stripped)
|
||||
stripped = re.sub(r"\s+", " ", stripped).strip()
|
||||
return stripped.lower()
|
||||
|
||||
|
||||
def split_possible_names(chunk: str) -> list[str]:
|
||||
chunk = clean_inline_md(chunk)
|
||||
chunk = chunk.split(":", 1)[0]
|
||||
chunk = re.sub(r"\([^)]*\)", "", chunk)
|
||||
chunk = re.sub(r'"[^"]+"', "", chunk)
|
||||
chunk = chunk.replace("&", " and ")
|
||||
names = NAME_RE.findall(chunk)
|
||||
out: list[str] = []
|
||||
for name in names:
|
||||
name = re.sub(r"\s+", " ", name).strip(" .,:;")
|
||||
words = [w for w in name.split() if w and w[0].isalpha()]
|
||||
if len(words) >= 2 and not any(w.lower() in BAD_NAME_WORDS for w in words):
|
||||
out.append(" ".join(words))
|
||||
if not out:
|
||||
single = re.sub(r"[^A-Za-z'-]", "", chunk).strip()
|
||||
if (
|
||||
single
|
||||
and single[0].isupper()
|
||||
and single.lower() not in BAD_NAME_WORDS
|
||||
and len(single) > 3
|
||||
):
|
||||
out.append(single)
|
||||
return out
|
||||
|
||||
|
||||
def extract_scholars(docs: list[Doc]) -> dict[str, dict[str, Any]]:
|
||||
scholars: dict[str, dict[str, Any]] = {}
|
||||
|
||||
for doc in docs:
|
||||
key_sections = [text for name, text in doc.sections.items() if "key scholars" in name]
|
||||
|
||||
candidates: list[str] = []
|
||||
for section in key_sections:
|
||||
for line in section.splitlines():
|
||||
bullet_match = BULLET_RE.match(line)
|
||||
if not bullet_match:
|
||||
continue
|
||||
raw = bullet_match.group(1)
|
||||
bullet = clean_inline_md(raw)
|
||||
bold_match = re.search(r"\*\*([^*]+)\*\*", raw)
|
||||
if bold_match:
|
||||
candidates.extend(split_possible_names(bold_match.group(1)))
|
||||
else:
|
||||
lead = bullet.split(":", 1)[0]
|
||||
candidates.extend(split_possible_names(lead))
|
||||
|
||||
unique = sorted(set(candidates))
|
||||
text_lower = doc.text.lower()
|
||||
for name in unique:
|
||||
key = normalize_person_name(name)
|
||||
if not key:
|
||||
continue
|
||||
entry = scholars.setdefault(
|
||||
key,
|
||||
{
|
||||
"name": name,
|
||||
"aliases": set(),
|
||||
"files": set(),
|
||||
"mention_count": 0,
|
||||
"contexts": [],
|
||||
},
|
||||
)
|
||||
entry["aliases"].add(name)
|
||||
entry["files"].add(doc.slug)
|
||||
|
||||
surname = name.split()[-1].lower().strip(".,")
|
||||
local_mentions = []
|
||||
for sentence in SENTENCE_SPLIT_RE.split(doc.text):
|
||||
sentence_clean = clean_inline_md(sentence)
|
||||
if surname and surname in sentence_clean.lower():
|
||||
local_mentions.append(sentence_clean)
|
||||
|
||||
if not local_mentions:
|
||||
if surname and surname in text_lower:
|
||||
local_mentions = [f"Mentioned in {doc.slug}"]
|
||||
else:
|
||||
local_mentions = [f"Listed in {doc.slug}"]
|
||||
|
||||
entry["mention_count"] += len(local_mentions)
|
||||
for snippet in local_mentions[:3]:
|
||||
entry["contexts"].append({"file": doc.slug, "snippet": snippet})
|
||||
|
||||
for entry in scholars.values():
|
||||
entry["aliases"] = sorted(entry["aliases"])
|
||||
entry["files"] = sorted(entry["files"])
|
||||
|
||||
return scholars
|
||||
|
||||
|
||||
def extract_title_from_source_line(line: str) -> str:
|
||||
line_clean = clean_inline_md(line)
|
||||
quoted = re.findall(r'"([^"]+)"', line)
|
||||
if quoted:
|
||||
return clean_inline_md(quoted[0])
|
||||
italic = re.findall(r"\*([^*]+)\*", line)
|
||||
if italic:
|
||||
return clean_inline_md(italic[0])
|
||||
|
||||
year_match = re.search(r"\(\d{4}\)\.?", line_clean)
|
||||
if year_match:
|
||||
tail = line_clean[year_match.end() :].strip(" .:-")
|
||||
if tail:
|
||||
return tail.split(".", 1)[0].strip()
|
||||
|
||||
return line_clean
|
||||
|
||||
|
||||
def extract_authors_from_source_line(line: str) -> list[str]:
|
||||
line_clean = clean_inline_md(line)
|
||||
year_match = re.search(r"\(\d{4}\)", line_clean)
|
||||
head = line_clean[: year_match.start()].strip() if year_match else line_clean
|
||||
head = head.replace("&", " and ")
|
||||
head = re.sub(r"\bet al\.?", "", head, flags=re.IGNORECASE)
|
||||
parts = [p.strip(" ,.-") for p in re.split(r"\band\b|;", head) if p.strip(" ,.-")]
|
||||
|
||||
names: list[str] = []
|
||||
for part in parts:
|
||||
if re.search(r"[A-Za-z]", part):
|
||||
names.append(part)
|
||||
return names
|
||||
|
||||
|
||||
def normalize_title(title: str) -> str:
|
||||
title = title.lower()
|
||||
title = re.sub(r"[^a-z0-9 ]", " ", title)
|
||||
return re.sub(r"\s+", " ", title).strip()
|
||||
|
||||
|
||||
def extract_bibliography(docs: list[Doc]) -> dict[str, dict[str, Any]]:
|
||||
bibliography: dict[str, dict[str, Any]] = {}
|
||||
for doc in docs:
|
||||
sources = [text for name, text in doc.sections.items() if name.startswith("sources")]
|
||||
for src in sources:
|
||||
for line in src.splitlines():
|
||||
bullet = BULLET_RE.match(line)
|
||||
if not bullet:
|
||||
continue
|
||||
raw = bullet.group(1)
|
||||
title = extract_title_from_source_line(raw)
|
||||
if not title:
|
||||
continue
|
||||
key = normalize_title(title)
|
||||
if not key:
|
||||
continue
|
||||
entry = bibliography.setdefault(
|
||||
key,
|
||||
{
|
||||
"title": title,
|
||||
"authors": set(),
|
||||
"files": set(),
|
||||
"raw_mentions": [],
|
||||
},
|
||||
)
|
||||
entry["files"].add(doc.slug)
|
||||
entry["raw_mentions"].append(clean_inline_md(raw))
|
||||
for author in extract_authors_from_source_line(raw):
|
||||
entry["authors"].add(author)
|
||||
|
||||
for entry in bibliography.values():
|
||||
entry["authors"] = sorted(entry["authors"])
|
||||
entry["files"] = sorted(entry["files"])
|
||||
entry["relevance"] = len(entry["files"]) * 2 + len(entry["raw_mentions"])
|
||||
|
||||
return bibliography
|
||||
|
||||
|
||||
def first_sentence_with_marker(text: str, marker: str) -> str | None:
|
||||
for sentence in SENTENCE_SPLIT_RE.split(text):
|
||||
if marker in sentence.lower():
|
||||
return clean_inline_md(sentence)
|
||||
return None
|
||||
|
||||
|
||||
def detect_contradictions(docs: list[Doc]) -> list[dict[str, Any]]:
|
||||
contradictions: list[dict[str, Any]] = []
|
||||
|
||||
for rule in TOPIC_RULES:
|
||||
pro_evidence: list[dict[str, str]] = []
|
||||
con_evidence: list[dict[str, str]] = []
|
||||
|
||||
for doc in docs:
|
||||
text_lower = doc.text.lower()
|
||||
for marker in rule["pro_markers"]:
|
||||
if marker in text_lower:
|
||||
snippet = first_sentence_with_marker(doc.text, marker)
|
||||
if snippet:
|
||||
pro_evidence.append(
|
||||
{"file": doc.slug, "marker": marker, "snippet": snippet}
|
||||
)
|
||||
break
|
||||
for marker in rule["con_markers"]:
|
||||
if marker in text_lower:
|
||||
snippet = first_sentence_with_marker(doc.text, marker)
|
||||
if snippet:
|
||||
con_evidence.append(
|
||||
{"file": doc.slug, "marker": marker, "snippet": snippet}
|
||||
)
|
||||
break
|
||||
|
||||
pro_files = {item["file"] for item in pro_evidence}
|
||||
con_files = {item["file"] for item in con_evidence}
|
||||
if pro_files - con_files and con_files - pro_files:
|
||||
contradictions.append(
|
||||
{
|
||||
"topic": rule["label"],
|
||||
"topic_id": rule["id"],
|
||||
"supports": pro_evidence[:4],
|
||||
"challenges": con_evidence[:4],
|
||||
"supporting_files": sorted(pro_files),
|
||||
"challenging_files": sorted(con_files),
|
||||
}
|
||||
)
|
||||
|
||||
return contradictions
|
||||
|
||||
|
||||
def extract_open_questions(paper_008: Path) -> list[dict[str, Any]]:
|
||||
text = paper_008.read_text(encoding="utf-8")
|
||||
marker = "## Open Questions for Paper 009"
|
||||
if marker not in text:
|
||||
raise RuntimeError("Could not find 'Open Questions for Paper 009' in paper 008")
|
||||
|
||||
section = text.split(marker, 1)[1]
|
||||
next_header = re.search(r"\n##\s+", section)
|
||||
if next_header:
|
||||
section = section[: next_header.start()]
|
||||
|
||||
questions: list[dict[str, Any]] = []
|
||||
for line in section.splitlines():
|
||||
match = NUMBERED_RE.match(line)
|
||||
if not match:
|
||||
continue
|
||||
idx = int(match.group(1))
|
||||
body = clean_inline_md(match.group(2))
|
||||
body = re.sub(r"^\*\*", "", body)
|
||||
body = re.sub(r"\*\*", "", body)
|
||||
questions.append({"id": idx, "text": body})
|
||||
|
||||
if not questions:
|
||||
raise RuntimeError("No numbered open questions found in paper 008")
|
||||
return questions
|
||||
|
||||
|
||||
def map_to_open_questions(
|
||||
docs: list[Doc], open_questions: list[dict[str, Any]]
|
||||
) -> list[dict[str, Any]]:
|
||||
coverage: list[dict[str, Any]] = []
|
||||
|
||||
for question in open_questions:
|
||||
qid = question["id"]
|
||||
keywords = QUESTION_KEYWORDS.get(qid, [])
|
||||
file_scores: list[dict[str, Any]] = []
|
||||
total = 0
|
||||
|
||||
for doc in docs:
|
||||
score = 0
|
||||
snippets: list[str] = []
|
||||
for sentence in SENTENCE_SPLIT_RE.split(doc.text):
|
||||
sentence_clean = clean_inline_md(sentence)
|
||||
hits = sum(1 for kw in keywords if kw in sentence_clean.lower())
|
||||
if hits:
|
||||
score += hits
|
||||
if len(snippets) < 3:
|
||||
snippets.append(sentence_clean)
|
||||
if score:
|
||||
total += score
|
||||
if score >= 12:
|
||||
level = "high"
|
||||
elif score >= 6:
|
||||
level = "medium"
|
||||
else:
|
||||
level = "low"
|
||||
file_scores.append(
|
||||
{
|
||||
"file": doc.slug,
|
||||
"score": score,
|
||||
"level": level,
|
||||
"snippets": snippets,
|
||||
}
|
||||
)
|
||||
|
||||
file_scores.sort(key=lambda x: x["score"], reverse=True)
|
||||
coverage.append(
|
||||
{
|
||||
"question_id": qid,
|
||||
"question": question["text"],
|
||||
"total_score": total,
|
||||
"supporting_files": file_scores,
|
||||
}
|
||||
)
|
||||
|
||||
coverage.sort(key=lambda x: x["question_id"])
|
||||
return coverage
|
||||
|
||||
|
||||
def extract_strongest_challenges(docs: list[Doc]) -> list[dict[str, Any]]:
|
||||
challenges: list[dict[str, Any]] = []
|
||||
|
||||
for doc in docs:
|
||||
counter_sections = [
|
||||
text
|
||||
for name, text in doc.sections.items()
|
||||
if "counterarguments" in name or "critiques" in name
|
||||
]
|
||||
if not counter_sections:
|
||||
continue
|
||||
for section in counter_sections:
|
||||
for line in section.splitlines():
|
||||
bullet = BULLET_RE.match(line)
|
||||
if not bullet:
|
||||
continue
|
||||
text = clean_inline_md(bullet.group(1))
|
||||
lower = text.lower()
|
||||
score = 1
|
||||
for keyword, weight in CHALLENGE_KEYWORDS.items():
|
||||
if keyword in lower:
|
||||
score += weight
|
||||
challenges.append({"file": doc.slug, "text": text, "score": score})
|
||||
|
||||
merged: dict[str, dict[str, Any]] = {}
|
||||
for challenge in challenges:
|
||||
key = challenge["text"].lower()
|
||||
if key not in merged:
|
||||
merged[key] = {
|
||||
"text": challenge["text"],
|
||||
"score": challenge["score"],
|
||||
"files": {challenge["file"]},
|
||||
}
|
||||
else:
|
||||
merged[key]["score"] += challenge["score"]
|
||||
merged[key]["files"].add(challenge["file"])
|
||||
|
||||
ranked = sorted(
|
||||
(
|
||||
{
|
||||
"text": item["text"],
|
||||
"score": item["score"],
|
||||
"files": sorted(item["files"]),
|
||||
}
|
||||
for item in merged.values()
|
||||
),
|
||||
key=lambda x: x["score"],
|
||||
reverse=True,
|
||||
)
|
||||
|
||||
return ranked[:10]
|
||||
|
||||
|
||||
def detect_emergent_themes(docs: list[Doc]) -> list[dict[str, Any]]:
|
||||
themes = {
|
||||
"Governance and agency design": [
|
||||
"agency",
|
||||
"democratic",
|
||||
"community",
|
||||
"policy",
|
||||
"selective adoption",
|
||||
"governance",
|
||||
],
|
||||
"Economic concentration and labor shift": [
|
||||
"labor",
|
||||
"capital",
|
||||
"commodity",
|
||||
"automation",
|
||||
"class",
|
||||
"pricing",
|
||||
],
|
||||
"Epistemic reliability and grounding": [
|
||||
"understand",
|
||||
"stochastic",
|
||||
"illusion",
|
||||
"lossy",
|
||||
"falsifiable",
|
||||
"evidence",
|
||||
],
|
||||
"Civilizational lock-in and resilience": [
|
||||
"lock-in",
|
||||
"path dependence",
|
||||
"retreat",
|
||||
"dependency",
|
||||
"ratchet",
|
||||
"reversal",
|
||||
],
|
||||
}
|
||||
|
||||
scored: list[dict[str, Any]] = []
|
||||
corpus = "\n".join(doc.text.lower() for doc in docs)
|
||||
for theme, keywords in themes.items():
|
||||
score = sum(corpus.count(k) for k in keywords)
|
||||
if score > 0:
|
||||
scored.append({"theme": theme, "score": score})
|
||||
scored.sort(key=lambda x: x["score"], reverse=True)
|
||||
return scored
|
||||
|
||||
|
||||
def build_structured_result(
|
||||
docs: list[Doc],
|
||||
scholars: dict[str, dict[str, Any]],
|
||||
bibliography: dict[str, dict[str, Any]],
|
||||
contradictions: list[dict[str, Any]],
|
||||
open_question_coverage: list[dict[str, Any]],
|
||||
strongest_challenges: list[dict[str, Any]],
|
||||
emergent_themes: list[dict[str, Any]],
|
||||
) -> dict[str, Any]:
|
||||
scholars_ranked = sorted(
|
||||
scholars.values(),
|
||||
key=lambda s: (len(s["files"]), s["mention_count"]),
|
||||
reverse=True,
|
||||
)
|
||||
|
||||
bibliography_ranked = sorted(
|
||||
bibliography.values(), key=lambda b: b["relevance"], reverse=True
|
||||
)
|
||||
|
||||
return {
|
||||
"meta": {
|
||||
"research_files": [doc.slug for doc in docs],
|
||||
"research_file_count": len(docs),
|
||||
},
|
||||
"scholars": scholars_ranked,
|
||||
"bibliography": bibliography_ranked,
|
||||
"contradictions": contradictions,
|
||||
"open_question_coverage": open_question_coverage,
|
||||
"strongest_challenges": strongest_challenges,
|
||||
"emergent_themes": emergent_themes,
|
||||
}
|
||||
|
||||
|
||||
def render_digest(result: dict[str, Any]) -> str:
|
||||
lines: list[str] = []
|
||||
lines.append("# Integrated Research Digest")
|
||||
lines.append("")
|
||||
lines.append("## Scope")
|
||||
lines.append(
|
||||
f"Processed {result['meta']['research_file_count']} research file(s): "
|
||||
+ ", ".join(result["meta"]["research_files"])
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Scholars by Frequency")
|
||||
for scholar in result["scholars"][:20]:
|
||||
files = ", ".join(scholar["files"])
|
||||
lines.append(
|
||||
f"- **{scholar['name']}** — files: {len(scholar['files'])}; mentions: {scholar['mention_count']}; in: {files}"
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Unified Bibliography")
|
||||
for item in result["bibliography"][:40]:
|
||||
authors = ", ".join(item["authors"]) if item["authors"] else "Unknown"
|
||||
files = ", ".join(item["files"])
|
||||
lines.append(
|
||||
f"- **{item['title']}** ({authors}) — relevance {item['relevance']}; cited in: {files}"
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Contradiction Report")
|
||||
if not result["contradictions"]:
|
||||
lines.append("- No cross-file contradictions detected by the current heuristic.")
|
||||
for item in result["contradictions"]:
|
||||
lines.append(f"### {item['topic']}")
|
||||
lines.append("- Supporting evidence:")
|
||||
for support in item["supports"]:
|
||||
lines.append(
|
||||
f" - `{support['file']}` ({support['marker']}): {support['snippet']}"
|
||||
)
|
||||
lines.append("- Challenging evidence:")
|
||||
for challenge in item["challenges"]:
|
||||
lines.append(
|
||||
f" - `{challenge['file']}` ({challenge['marker']}): {challenge['snippet']}"
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Paper 009 Coverage Map")
|
||||
for item in result["open_question_coverage"]:
|
||||
if item["supporting_files"]:
|
||||
max_level = max(fs["level"] for fs in item["supporting_files"])
|
||||
else:
|
||||
max_level = "none"
|
||||
lines.append(
|
||||
f"### Q{item['question_id']} (total score {item['total_score']}, strongest level {max_level})"
|
||||
)
|
||||
lines.append(f"{item['question']}")
|
||||
if not item["supporting_files"]:
|
||||
lines.append("- No supporting material detected.")
|
||||
continue
|
||||
for fs in item["supporting_files"][:4]:
|
||||
lines.append(f"- `{fs['file']}`: score {fs['score']} ({fs['level']})")
|
||||
for snip in fs["snippets"][:2]:
|
||||
lines.append(f" - {snip}")
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Strongest Challenges")
|
||||
if not result["strongest_challenges"]:
|
||||
lines.append("- No challenge bullets detected.")
|
||||
for item in result["strongest_challenges"]:
|
||||
lines.append(
|
||||
f"- **Score {item['score']}** ({', '.join(item['files'])}): {item['text']}"
|
||||
)
|
||||
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
def render_outline(result: dict[str, Any]) -> str:
|
||||
coverage_sorted = sorted(
|
||||
result["open_question_coverage"], key=lambda x: x["total_score"], reverse=True
|
||||
)
|
||||
most_covered = coverage_sorted[:2]
|
||||
least_covered = coverage_sorted[-2:] if len(coverage_sorted) >= 2 else coverage_sorted
|
||||
|
||||
lines: list[str] = []
|
||||
lines.append("# Suggested Outline for Paper 009")
|
||||
lines.append("")
|
||||
lines.append("## Why This Sequence")
|
||||
lines.append(
|
||||
"Order starts with heavily-supported questions, then closes with low-coverage questions that require new argumentation or new research."
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Coverage Priorities")
|
||||
lines.append("- Most supported open questions:")
|
||||
for item in most_covered:
|
||||
lines.append(
|
||||
f" - Q{item['question_id']} (score {item['total_score']}): {item['question']}"
|
||||
)
|
||||
lines.append("- Least supported open questions:")
|
||||
for item in least_covered:
|
||||
lines.append(
|
||||
f" - Q{item['question_id']} (score {item['total_score']}): {item['question']}"
|
||||
)
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Proposed Sections")
|
||||
for item in coverage_sorted:
|
||||
qid = item["question_id"]
|
||||
lines.append(f"### Section {qid}: Q{qid}")
|
||||
lines.append(item["question"])
|
||||
if item["supporting_files"]:
|
||||
top_files = ", ".join(fs["file"] for fs in item["supporting_files"][:3])
|
||||
lines.append(f"- Primary evidence files: {top_files}")
|
||||
top_snips = [
|
||||
snip
|
||||
for fs in item["supporting_files"][:2]
|
||||
for snip in fs["snippets"][:1]
|
||||
]
|
||||
for snip in top_snips:
|
||||
lines.append(f"- Anchor claim: {snip}")
|
||||
else:
|
||||
lines.append("- Primary evidence files: none detected; requires fresh synthesis.")
|
||||
lines.append("")
|
||||
|
||||
lines.append("## Cross-Cutting Counterarguments To Address Explicitly")
|
||||
for challenge in result["strongest_challenges"][:5]:
|
||||
lines.append(f"- {challenge['text']} ({', '.join(challenge['files'])})")
|
||||
lines.append("")
|
||||
|
||||
lines.append("## New Themes To Add Beyond Original Open Questions")
|
||||
for theme in result["emergent_themes"][:4]:
|
||||
lines.append(f"- {theme['theme']} (signal score {theme['score']})")
|
||||
|
||||
return "\n".join(lines) + "\n"
|
||||
|
||||
|
||||
def main() -> int:
|
||||
args = parse_args()
|
||||
project_root = args.project_root.resolve()
|
||||
research_dir = (args.research_dir or (project_root / "research")).resolve()
|
||||
paper_008 = (args.paper_008 or (project_root / "008-the-ship-of-theseus.md")).resolve()
|
||||
out_dir = args.out_dir.resolve()
|
||||
out_dir.mkdir(parents=True, exist_ok=True)
|
||||
|
||||
print(f"[integrator] project root: {project_root}")
|
||||
print(f"[integrator] research dir: {research_dir}")
|
||||
print(f"[integrator] paper 008: {paper_008}")
|
||||
print(f"[integrator] output dir: {out_dir}")
|
||||
|
||||
docs = load_research_docs(research_dir)
|
||||
print(f"[integrator] loaded {len(docs)} research file(s)")
|
||||
if not docs:
|
||||
print("[integrator] no research files found; writing empty digest/outline")
|
||||
|
||||
open_questions = extract_open_questions(paper_008)
|
||||
print(f"[integrator] extracted {len(open_questions)} open question(s) from Paper 008")
|
||||
|
||||
scholars = extract_scholars(docs)
|
||||
print(f"[integrator] extracted {len(scholars)} unique scholar name(s)")
|
||||
|
||||
bibliography = extract_bibliography(docs)
|
||||
print(f"[integrator] extracted {len(bibliography)} bibliography item(s)")
|
||||
|
||||
contradictions = detect_contradictions(docs)
|
||||
print(f"[integrator] detected {len(contradictions)} contradiction topic(s)")
|
||||
|
||||
coverage = map_to_open_questions(docs, open_questions)
|
||||
print("[integrator] mapped research evidence to Paper 008 open questions")
|
||||
|
||||
strongest_challenges = extract_strongest_challenges(docs)
|
||||
print(f"[integrator] ranked {len(strongest_challenges)} strongest challenge(s)")
|
||||
|
||||
emergent_themes = detect_emergent_themes(docs)
|
||||
print(f"[integrator] found {len(emergent_themes)} emergent theme(s)")
|
||||
|
||||
result = build_structured_result(
|
||||
docs,
|
||||
scholars,
|
||||
bibliography,
|
||||
contradictions,
|
||||
coverage,
|
||||
strongest_challenges,
|
||||
emergent_themes,
|
||||
)
|
||||
|
||||
json_path = out_dir / "integrated.json"
|
||||
digest_path = out_dir / "digest.md"
|
||||
outline_path = out_dir / "009_outline_suggestion.md"
|
||||
|
||||
json_path.write_text(json.dumps(result, indent=2), encoding="utf-8")
|
||||
digest_path.write_text(render_digest(result), encoding="utf-8")
|
||||
outline_path.write_text(render_outline(result), encoding="utf-8")
|
||||
|
||||
print(f"[integrator] wrote {json_path}")
|
||||
print(f"[integrator] wrote {digest_path}")
|
||||
print(f"[integrator] wrote {outline_path}")
|
||||
|
||||
return 0
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
raise SystemExit(main())
|
||||
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user