Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
59 commits
Select commit Hold shift + click to select a range
b014fe5
site: unify Eleventy routes and fallback artifacts
erinepshovel-code Jul 14, 2026
b62a3e7
canon: preserve Wayseer authority and honest fallback
erinepshovel-code Jul 14, 2026
21a2eaf
canon: parse note text and stable provenance
erinepshovel-code Jul 14, 2026
2e06c91
projects: enrich organization map from manifests
erinepshovel-code Jul 14, 2026
7f09744
site: enforce provenance and recovery contracts
erinepshovel-code Jul 14, 2026
262a9fe
design: establish unified static-first site shell
erinepshovel-code Jul 14, 2026
25f9d38
design: add optional mobile navigation enhancement
erinepshovel-code Jul 14, 2026
c765506
design: apply the Midnight Field visual system
erinepshovel-code Jul 14, 2026
756f6a5
content: replace homepage with layered orientation
erinepshovel-code Jul 14, 2026
7669acc
content: build newcomer orientation path
erinepshovel-code Jul 14, 2026
45e00dc
content: organize the Way by canonical section
erinepshovel-code Jul 14, 2026
0332ca0
content: add layered canonical companion pages
erinepshovel-code Jul 14, 2026
1f14a40
content: build Article Lab index
erinepshovel-code Jul 14, 2026
7377003
content: render body-note conversations and research gaps
erinepshovel-code Jul 14, 2026
bbcd763
content: expose exact source with honest provenance
erinepshovel-code Jul 14, 2026
36665ce
projects: render categorized organization constellation
erinepshovel-code Jul 14, 2026
2087fdc
projects: add purpose relations surfaces and gaps
erinepshovel-code Jul 14, 2026
4055caa
artifacts: add unified public artifact index
erinepshovel-code Jul 14, 2026
8e46c00
research: define evidence and false-balance boundaries
erinepshovel-code Jul 14, 2026
e28bc34
projects: add reviewed central metadata seeds
erinepshovel-code Jul 14, 2026
a6aec6a
projects: declare this repository's public role
erinepshovel-code Jul 14, 2026
d28bbcc
recovery: add dependency-free emergency edition
erinepshovel-code Jul 14, 2026
212fd87
recovery: style emergency edition without dependencies
erinepshovel-code Jul 14, 2026
eb661a0
recovery: preserve custom domain in fallback
erinepshovel-code Jul 14, 2026
9bd56a3
ci: retain verified site artifacts before Pages deploy
erinepshovel-code Jul 14, 2026
6494e56
ci: add explicit emergency fallback deployment
erinepshovel-code Jul 14, 2026
f636a8b
test: pin canon authority and unit evidence
erinepshovel-code Jul 14, 2026
450cdaa
test: verify static-first and fallback contracts
erinepshovel-code Jul 14, 2026
8e0cdb5
docs: replace stale a0p README with site guidance
erinepshovel-code Jul 14, 2026
f17d59a
docs: document source data and recovery architecture
erinepshovel-code Jul 14, 2026
e3afe04
ci: authorize build-time project discovery
erinepshovel-code Jul 14, 2026
d061314
ci: authorize pull-request data refresh
erinepshovel-code Jul 14, 2026
6cf12d5
ci: safely record fallback deployment reason
erinepshovel-code Jul 14, 2026
e288f6a
test: verify routes in the generated deployment artifact
erinepshovel-code Jul 14, 2026
3704e69
ci: expose each static build boundary
erinepshovel-code Jul 14, 2026
7b3f524
ci: identify the failing validation contract
erinepshovel-code Jul 14, 2026
0869819
fix: publish Four Cuts from its actual artifact path
erinepshovel-code Jul 14, 2026
309231c
fix: validate the committed Four Cuts artifact path
erinepshovel-code Jul 14, 2026
b6b3366
fix: test the actual Four Cuts source path
erinepshovel-code Jul 14, 2026
f931de3
fix: verify the committed Four Cuts source path
erinepshovel-code Jul 14, 2026
0a96f6a
docs: name the actual Four Cuts source path
erinepshovel-code Jul 14, 2026
637f14a
ci: preserve the Eleventy failure diagnostic
erinepshovel-code Jul 14, 2026
2f913d5
fix: bound canonical route slugs deterministically
erinepshovel-code Jul 14, 2026
4d30cff
routes: use bounded slugs in the Way index
erinepshovel-code Jul 14, 2026
dab0a70
routes: use bounded slugs on Way companions
erinepshovel-code Jul 14, 2026
62c1c7a
routes: use bounded slugs in the Lab index
erinepshovel-code Jul 14, 2026
a50c061
routes: use bounded slugs on Lab pages
erinepshovel-code Jul 14, 2026
06fddf3
routes: use bounded slugs in the source index
erinepshovel-code Jul 14, 2026
d1b4d74
routes: use bounded slugs on exact source pages
erinepshovel-code Jul 14, 2026
36b5b08
test: pin bounded unique canonical routes
erinepshovel-code Jul 14, 2026
fbf375c
fix: preserve offline project metadata and constrain GitHub requests
erinepshovel-code Jul 14, 2026
e08be18
test: separate post-build deployment assertions
erinepshovel-code Jul 14, 2026
e714483
test: add explicit post-build deployment assertions
erinepshovel-code Jul 14, 2026
663405d
test: preserve reviewed metadata in offline project snapshots
erinepshovel-code Jul 14, 2026
12e367a
test: separate clean-checkout and generated-site suites
erinepshovel-code Jul 14, 2026
f1d83f7
ci: run clean-checkout and post-build tests separately
erinepshovel-code Jul 14, 2026
5424da1
ci: preserve clean-checkout test failures
erinepshovel-code Jul 14, 2026
30f2cfd
test: prepare generated data offline before clean-checkout tests
erinepshovel-code Jul 14, 2026
7e95b04
test: prepare generated fixtures before standalone tests
erinepshovel-code Jul 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 24 additions & 6 deletions .eleventy.js
Original file line number Diff line number Diff line change
@@ -1,11 +1,29 @@
import markdownIt from 'markdown-it';

export default function(eleventyConfig) {
// === MODULE_BUILD ===
// id: eleventy_site_configuration
// purpose: Build the static-first public knowledge system and copy deliberate fallback artifacts.
// entrypoint: npm run build
// tests: tests/site-contract.test.mjs
// === END MODULE_BUILD ===

export default function configureEleventy(eleventyConfig) {
const md = markdownIt({ html: false, linkify: true, typographer: true });
eleventyConfig.setLibrary('md', md);
eleventyConfig.addPassthroughCopy({ 'src/assets': 'assets', CNAME: 'CNAME' });
eleventyConfig.addFilter('json', v => JSON.stringify(v));
eleventyConfig.addFilter('dateOnly', v => v ? String(v).slice(0,10) : 'hmmm');
eleventyConfig.addFilter('where', (arr, key, val) => (arr || []).filter(item => item?.[key] === val));
return { dir: { input: 'src', output: '_site', includes: '_includes', data: '_data' }, markdownTemplateEngine: 'njk', htmlTemplateEngine: 'njk' };
eleventyConfig.addPassthroughCopy({
'src/assets': 'assets',
'CNAME': 'CNAME',
'artifacts/four-cuts-1.html': 'artifacts/four-cuts/index.html',
'fallback': 'fallback'
});
eleventyConfig.addFilter('json', value => JSON.stringify(value));
eleventyConfig.addFilter('dateOnly', value => value ? String(value).slice(0, 10) : 'hmmm');
eleventyConfig.addFilter('where', (items, key, value) => (items || []).filter(item => item?.[key] === value));
eleventyConfig.addFilter('statusClass', value => `status-${String(value || 'hmmm').toLowerCase().replace(/[^a-z0-9]+/g, '-')}`);

return {
dir: { input: 'src', output: '_site', includes: '_includes', data: '_data' },
markdownTemplateEngine: 'njk',
htmlTemplateEngine: 'njk'
};
}
37 changes: 37 additions & 0 deletions .github/workflows/fallback.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,37 @@
name: Deploy emergency static edition
on:
workflow_dispatch:
inputs:
reason:
description: Why the emergency edition is being deployed
required: true
type: string
permissions:
contents: read
pages: write
id-token: write
concurrency:
group: pages
cancel-in-progress: false
jobs:
verify-and-deploy:
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@08c6903cd8c0fde910a37f88322edcfb5dd907a8
- name: Verify explicit fallback artifact
env:
DEPLOY_REASON: ${{ inputs.reason }}
run: |
test -s fallback/index.html
test -s fallback/fallback.css
! grep -qi '<script' fallback/index.html
printf '%s\n' "$DEPLOY_REASON" > fallback/DEPLOYMENT_REASON.txt
- uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b
- uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b
with:
path: fallback
- id: deployment
uses: actions/deploy-pages@d74e976d0eb5d900a0cef4b369a9d84a9b222a53
7 changes: 7 additions & 0 deletions .github/workflows/pages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,14 @@ jobs:
cache: npm
- run: npm ci
- run: npm run check
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- uses: actions/configure-pages@983d7736d9b0ae728b81ab479565c72886d7745b
- uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08
with:
name: verified-site-${{ github.sha }}
path: _site
retention-days: 30
- uses: actions/upload-pages-artifact@7b1f4a764d45c48632c6b24a0339c27f5614fb0b
with:
path: _site
Expand Down
41 changes: 40 additions & 1 deletion .github/workflows/pull-request.yml
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,43 @@ jobs:
node-version-file: .nvmrc
cache: npm
- run: npm ci
- run: npm run check
- name: Run clean-checkout tests
run: |
set -o pipefail
npm test 2>&1 | tee clean-test.log
- name: Preserve clean-checkout test failure log
if: failure()
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08
with:
name: clean-test-failure-${{ github.sha }}
path: clean-test.log
retention-days: 3
- name: Refresh canonical and organization data
run: npm run refresh:data
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
- name: Verify canon authority
run: node -e "const c=require('./src/_data/generated/canon.json'); if(c.source.repository!=='wayseer00/wayseer.github.io'||c.source.path!=='canon/the_interdependent_way.md') process.exit(1)"
- name: Verify canon unit evidence
run: node -e "const c=require('./src/_data/generated/canon.json'); if(!c.source.contentSha256||c.source.contentSha256.length!==64||!c.units.length||c.units.some(u=>!u.id||!u.hash)) process.exit(1)"
- name: Verify repository route coverage
run: node -e "const r=require('./src/_data/generated/repos.json'); if(r.publicRepoCount!==r.generatedRouteCount||new Set(r.repositories.map(x=>x.slug)).size!==r.repositories.length) process.exit(1)"
- name: Verify recovery inputs
run: test -s fallback/index.html && test -s artifacts/four-cuts-1.html
- name: Validate generated content contracts
run: npm run validate
- name: Generate Eleventy site
run: |
set -o pipefail
npx eleventy 2>&1 | tee eleventy-build.log
- name: Preserve Eleventy failure log
if: failure()
uses: actions/upload-artifact@65c4c4a1ddee5b72f698fdd19549f0f0fb45cf08
with:
name: eleventy-failure-${{ github.sha }}
path: eleventy-build.log
retention-days: 3
- name: Generate Pagefind search index
run: npx pagefind --site _site
- name: Run generated-site tests
run: npm run test:generated
9 changes: 9 additions & 0 deletions .interdependency/project.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
category: Public doctrine & publishing
status: implemented
summary: The static-first public entry point for The Interdependent Way and The Interdependency project constellation.
purpose: Orient visitors, preserve canon provenance, host layered companion readings, and generate one public space for every organization repository.
primary_artifact: https://interdependentway.org
docs: https://github.com/The-Interdependency/The-Interdependency.github.io/tree/main/docs
relationships:
- Reads the Wayseer canon mirror while preserving the wayseer00 canonical identity.
- Generates project pages from public GitHub facts and repository manifests.
68 changes: 47 additions & 21 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,33 +1,59 @@
# a0p — Agent Zero Platform
# The Interdependent Way public knowledge system

a0p is a mobile-first autonomous AI agent application. It leverages Gemini function-calling and a mathematically rigorous orchestration engine (EDCMBONE) to execute tasks autonomously. It integrates with Google infrastructure (Gmail, Drive), provides file management with direct phone upload, and includes robust features like cryptographic audit logging and real-time cost tracking.
This repository builds `interdependentway.org`: a static-first, progressively layered entrance to The Interdependent Way, its deliberate tensions, surrounding research, public artifacts, and the repositories attempting implementation.

**Key Design Principles:**
* **Mobile-first**: Optimized for phone browsers and PWA-like experience.
* **Autonomous**: Agent determines tool usage without manual intervention.
* **Auditable**: Every engine action is hash-chained and timestamped.
* **Cost-aware**: Tracks per-token usage with estimated USD costs.
* **Fail-closed**: No silent fallback for critical operations.
## What is authoritative

The core of a0p's intelligence lies in its EDCMBONE engine, utilizing Prime Tensor Circular Architecture (PTCA) and Prime Circular Neural Architecture (PCNA) for sophisticated AI orchestration and decision-making.
The canonical identity remains `wayseer00/wayseer.github.io:canon/the_interdependent_way.md`. The repository copy at `canon/the_interdependent_way.md` is a recovery mirror. Build output records whether the remote source or recovery mirror supplied the current snapshot, together with SHA-256 provenance.

---
## Architecture

# A0
- Eleventy generates complete HTML into `_site`.
- Pagefind supplies static search.
- GitHub organization and canon data are retrieved at build time, never in a visitor’s browser.
- Every public organization repository receives a generated project page.
- `.interdependency/project.yml` supplies reviewed project purpose, maturity, relationships, and links.
- `fallback/` is a dependency-free emergency edition.
- `artifacts/four-cuts-1.html` is deliberately published at `/artifacts/four-cuts/` through Eleventy passthrough.

A0 is the instantiated runtime embodiment of PTCA.
## Usage guidance

## Core split
- Heartbeat: world-facing cadence, scheduling, sensing, deployment rhythm
- Psi: interpretation, synthesis, discernment, council coordination
- Omega: commitment, integration, release, terminal authority layer
```bash
npm install
npm run dev
npm run check
```

---
Use the recovery snapshots without network access:

# TIW Addendum Package: Fiddly Bits (Thread)
```bash
OFFLINE=1 npm run build
```

This package contains the canonicalized thread addendum.
Add reviewed project metadata to a repository:

- `canon/addenda/ADDENDUM_FIDDLY_BITS_THREAD.md`
```yaml
category: Mathematics & verification
status: frontier
summary: One-sentence public description.
purpose: The repository's role within the project constellation.
primary_artifact: https://example.org
docs: https://github.com/org/repo/tree/main/docs
relationships:
- Depends on another named project for a specific function.
```

hmm — unresolved constraint marker: If you want this merged into the full canon zip, say so and I will rebuild a combined package.
Place that file at `.interdependency/project.yml`. Until it exists, the public project page keeps the missing editorial layer visible as `hmmm`.

## Status language

- **canon** — exact or mechanically derived from the canonical source
- **interpretation** — explanatory material subject to review
- **research** — externally sourced support, dissent, or context
- **implemented** — a working public surface exists
- **frontier** — experimental, incomplete, or not externally established
- **hmmm** — an unresolved constraint with enough context for continuation

## Release discipline

GitHub Actions runs the build, validation, tests, static search generation, and deployment. Failed builds do not replace the last successful Pages artifact. Emergency fallback deployment is explicit rather than automatic.
17 changes: 15 additions & 2 deletions docs/architecture.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,18 @@
# Architecture

Static pages are generated by Eleventy. Build-time scripts produce `src/_data/generated/canon.json` from the local canonical snapshot and `src/_data/generated/repos.json` from the GitHub organization API or last-known-good fixture.
The production site is generated into `_site` by Eleventy. Pages are complete HTML first; JavaScript adds only optional interaction. The browser never needs to call GitHub to discover projects or retrieve canon.

The browser receives HTML, CSS, and optional Pagefind search enhancement. No visitor-side GitHub polling is used.
## Data paths

- `scripts/fetch-canon.mjs` retrieves the Wayseer canonical alias `wayseer00/wayseer.github.io:canon/the_interdependent_way.md`. The transferred repository copy at `canon/the_interdependent_way.md` is recovery-only and is recorded as a fallback when used.
- `scripts/parse-canon.mjs` generates units, line ranges, note text, relationships, and SHA-256 digests.
- `scripts/fetch-github-org.mjs` discovers every public organization repository and merges GitHub facts with `.interdependency/project.yml` or reviewed central overrides.
- Pagefind indexes the generated site after Eleventy finishes.

## Static backup

`fallback/` is dependency-free and copied into every normal artifact. A separate manual recovery workflow may deploy it, but an ordinary build failure must leave the previous successful Pages deployment live.

## Usage guidance

Run `npm install && npm run dev` for local work. Run `OFFLINE=1 npm run build` to verify last-known-good operation without network access. Run `npm run check` before proposing publication.
1 change: 1 addition & 0 deletions fallback/CNAME
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
interdependentway.org
1 change: 1 addition & 0 deletions fallback/fallback.css

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

1 change: 1 addition & 0 deletions fallback/index.html
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@
<!doctype html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width,initial-scale=1"><title>The Interdependent Way — emergency static edition</title><meta name="description" content="Dependency-free emergency entrance to The Interdependent Way."><link rel="stylesheet" href="fallback.css"></head><body><header><p class="flag">Emergency static edition</p><h1>The Interdependent Way</h1><p>This dependency-free page exists for explicit recovery deployment. The last successful full site should remain live when ordinary builds fail.</p></header><main><section><h2>Begin</h2><p>The Interdependent Way is a dense living text and a constellation of projects attempting to explain, test, implement, challenge, and preserve it.</p></section><section><h2>Primary links</h2><ul><li><a href="/">Return to the full site</a></li><li><a href="https://github.com/The-Interdependency/The-Interdependency.github.io/blob/main/canon/the_interdependent_way.md">Read the repository canon mirror</a></li><li><a href="https://github.com/The-Interdependency">Open The Interdependency organization</a></li><li><a href="https://github.com/The-Interdependency/ucns">UCNS</a></li><li><a href="https://github.com/The-Interdependency/skill-lib">skill-lib</a></li><li><a href="https://github.com/The-Interdependency/a0">a0</a></li></ul></section><section class="hmmm"><h2>hmmm</h2><p>This edition contains no dynamic project snapshot, search index, Article Lab, or external dependencies. It is a recovery floor, not the preferred public experience.</p></section></main><footer><p>Apache-2.0 unless an individual artifact states otherwise. Contact: curious@interdependentway.org</p></footer></body></html>
6 changes: 4 additions & 2 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,12 +11,14 @@
"research:enrich": "node scripts/enrich-citations.mjs",
"validate": "node scripts/validate-content.mjs && node scripts/verify-generated-routes.mjs",
"build": "npm run refresh:data && npm run validate && eleventy && pagefind --site _site",
"test": "node --test tests/*.test.mjs",
"pretest": "node scripts/prepare-tests.mjs",
"test": "node --test tests/canon-integrity.test.mjs tests/offline-project-snapshot.test.mjs tests/repo-coverage.test.mjs tests/research-ledger.test.mjs tests/site-contract.test.mjs",
"test:generated": "node --test tests/generated-site.test.mjs && node tests/links.test.mjs",
"test:e2e": "playwright test tests/*.spec.mjs",
"test:a11y": "playwright test tests/accessibility.spec.mjs",
"test:links": "node tests/links.test.mjs",
"test:performance": "node scripts/performance-placeholder.mjs",
"check": "npm run build && npm run test"
"check": "npm run build && npm test && npm run test:generated"
},
"dependencies": {
"@11ty/eleventy": "3.1.2",
Expand Down
69 changes: 61 additions & 8 deletions scripts/fetch-canon.mjs
Original file line number Diff line number Diff line change
@@ -1,10 +1,63 @@
import { readFile, writeFile, mkdir } from 'node:fs/promises';
import { createHash } from 'node:crypto';
import { execFileSync } from 'node:child_process';
await mkdir('src/_data/snapshots',{recursive:true});
const local='canon/the_interdependent_way.md';
let text=await readFile(local,'utf8');
const commit=execFileSync('git',['rev-parse','HEAD'],{encoding:'utf8'}).trim();
const hash=createHash('sha256').update(text).digest('hex');
await writeFile('src/_data/snapshots/canon.last-known-good.md',`---\nrepository: The-Interdependency/a0\npath: interdependent_way.md\ncommit: ${commit}\nretrieved_at: ${new Date().toISOString()}\ncontent_sha256: ${hash}\nfallback: local-repository-copy\n---\n${text}`);
console.log(`canon ${commit} ${hash}`);
import { mkdir, readFile, writeFile } from 'node:fs/promises';

// === MODULE_BUILD ===
// id: canonical_source_fetch
// purpose: Retrieve the Wayseer canonical text or preserve a visibly labeled local recovery mirror.
// entrypoint: npm run refresh:canon
// tests: tests/canon-integrity.test.mjs
// === END MODULE_BUILD ===
// === BOUNDARIES ===
// id: canon_network_boundary
// network: read-only HTTPS request to raw.githubusercontent.com
// storage: writes generated snapshots beneath src/_data/snapshots
// failure: falls back to the repository mirror and records fallback=true
// === END BOUNDARIES ===

const canonical = {
repository: 'wayseer00/wayseer.github.io',
path: 'canon/the_interdependent_way.md',
branch: 'main',
url: 'https://raw.githubusercontent.com/wayseer00/wayseer.github.io/main/canon/the_interdependent_way.md'
};
const localMirror = 'canon/the_interdependent_way.md';

function fetchRemote() {
if (process.env.OFFLINE === '1') throw new Error('offline requested');
return execFileSync('curl', ['-fsSL', '--retry', '2', '--max-time', '30', canonical.url], {
encoding: 'utf8',
stdio: ['ignore', 'pipe', 'pipe']
});
}

await mkdir('src/_data/snapshots', { recursive: true });
let text;
let fallback = false;
let retrievalError = null;
try {
text = fetchRemote();
} catch (error) {
fallback = true;
retrievalError = String(error?.message || error);
text = await readFile(localMirror, 'utf8');
}
if (!text.trim()) throw new Error('canonical text is empty');

let siteCommit = 'unknown';
try {
siteCommit = execFileSync('git', ['rev-parse', 'HEAD'], { encoding: 'utf8' }).trim();
} catch {}
const contentSha256 = createHash('sha256').update(text).digest('hex');
const metadata = {
...canonical,
retrievedAt: new Date().toISOString(),
contentSha256,
fallback,
fallbackSource: fallback ? localMirror : null,
retrievalError: fallback ? retrievalError : null,
siteCommit
};
await writeFile('src/_data/snapshots/canon.last-known-good.md', `---\n${JSON.stringify(metadata)}\n---\n${text}`);
await writeFile('src/_data/snapshots/canon.provenance.json', JSON.stringify(metadata, null, 2));
console.log(`canon ${canonical.repository}/${canonical.path} ${contentSha256}${fallback ? ' fallback' : ''}`);
Loading
Loading