Interpretive laboratory
{% if lab %}{{ lab.public_title }}{% else %}{{ unit.title }}{% endif %}
diff --git a/src/search/index.njk b/src/search/index.njk
index 7cd3717..565c6e3 100644
--- a/src/search/index.njk
+++ b/src/search/index.njk
@@ -2,4 +2,4 @@
layout: layouts/base.njk
title: Search
---
-Search
Pagefind assets are built after Eleventy. Without JavaScript, use the browsable indexes: Way, Lab, Projects.
+Search
Pagefind assets are built after Eleventy. Without JavaScript, use the browsable indexes: Way tree and Article Labs, Projects.
diff --git a/src/start.njk b/src/start.njk
index dc22aa0..7f228fc 100644
--- a/src/start.njk
+++ b/src/start.njk
@@ -6,5 +6,5 @@ description: Orientation to The Interdependent Way, its layered source model, pr
---
Orientation before density
Start here
The Interdependent Way is simultaneously a canonical text, an interpretive problem, a research program, a public project constellation, and a set of frontier claims. Those layers are related, but they are not interchangeable.
How to read this site
CanonWhat the source says
Exact text and mechanically derived structure. Canon wins whenever a companion reading disagrees.
InterpretationWhat a reading proposes
Orientation, plain-language companions, and tension analysis. Useful scaffolding, always subordinate to source.
ResearchWhat studies found
Only primary studies and systematic evidence-synthesis studies count. Support, dissent, mixed results, limits, and missing directions are classified by review rather than automated sentiment.
Non-study contextWhat rules or institutions say
Legislation, treaties, standards, guidelines, frameworks, and doctrine may matter as context, but they are not science and never count as Research.
ImplementationWhat has been built
Repositories and artifacts that attempt to embody, test, measure, publish, or challenge part of the work.
FrontierWhat remains unsettled
Experimental or incomplete claims remain named without borrowing certainty from neighboring formal work.
hmmmWhat is honestly unresolved
A boundary object that records the missing constraint and preserves a place for continuation.
-A suggested first path
- Open The Way and choose one section.
- Read its companion page to locate the unit.
- Enter the unit’s Article Lab to see body text and notes treated as separate speakers.
- Open exact source when you are ready to verify wording and provenance.
- Use Projects to see what has actually been implemented.
+A suggested first path
- Open the Way tree and choose one section.
- Expand its title to read the exact canon text.
- Where offered, open that unit’s Article Lab to see body text and notes treated as separate speakers.
- Open exact source when you are ready to verify wording and provenance.
- Use Projects to see what has actually been implemented.
diff --git a/src/way/index.njk b/src/way/index.njk
index e353a61..1f748b3 100644
--- a/src/way/index.njk
+++ b/src/way/index.njk
@@ -4,4 +4,4 @@ title: Explore The Way
description: An expandable map of The Interdependent Way.
---
Canon-derived map
Explore The Way
Select a title to display that canon unit's exact text.
-{% for unit in generated.canon.units %}{{ unit.title }}
{{ unit.content }} {% endfor %}
+{% for unit in generated.canon.units %}{% set labMatches = article_lab | where("unit_id", unit.id) %}{{ unit.title }}
{{ unit.content }}{% if labMatches.length %}Open Article Lab
{% endif %} {% endfor %}
diff --git a/tests/generated-site.test.mjs b/tests/generated-site.test.mjs
index 8ca7890..1cec70e 100644
--- a/tests/generated-site.test.mjs
+++ b/tests/generated-site.test.mjs
@@ -106,6 +106,8 @@ test('Way map renders Human consciousness beneath Interdefinables and before Pre
assert.match(way, //);
assert.match(way, /Select a title to display that canon unit's exact text/);
+ assert.equal((way.match(/class="canon-unit-lab"/g) || []).length, 8);
+ assert.match(way, /Open Article Lab/);
assert.doesNotMatch(way, /Open unit page|Enter Lab|Source and provenance|tap to read|text open/);
});
diff --git a/tests/site-contract.test.mjs b/tests/site-contract.test.mjs
index 5684a44..34e4940 100644
--- a/tests/site-contract.test.mjs
+++ b/tests/site-contract.test.mjs
@@ -16,14 +16,19 @@ test('base layout remains readable without javascript and exposes the textbook a
assert.match(layout, /Start<\/a>/);
+ assert.doesNotMatch(layout, />The Way<\/a>/);
+ assert.doesNotMatch(layout, />Article Lab<\/a>/);
assert.doesNotMatch(layout, /fetch\(/);
});
-test('Way map disclosures contain only a title and exact canon text', async () => {
+test('Way tree disclosures contain exact canon text and only reviewed Article Lab links', async () => {
const way = await readFile('src/way/index.njk', 'utf8');
assert.match(way, /{{ unit\.title }}<\/strong><\/summary>/);
assert.match(way, /{{ unit\.content }}<\/pre>/);
+ assert.match(way, /article_lab \| where\("unit_id", unit\.id\)/);
+ assert.match(way, /href="\/lab\/{{ unit\.routeSlug }}\/">Open Article Lab<\/a>/);
assert.doesNotMatch(way, /Open unit page|Enter Lab|Source and provenance|tap to read|text open/);
assert.doesNotMatch(way, /