echoes-experience / AGENTS.tape
ghost
agents: enhance @I id001 with project-tree fields (brief + parent)
c72191b
#!/usr/bin/env tape
# ══════════════════════════════════════════════════════════════════════
# .tape v1.2 β€” grammar primer (cold-read by any LLM / agent / human)
# ══════════════════════════════════════════════════════════════════════
# Form: each entry is `@<type> <id> := "<subject>" :: <kind> [<grades>]`
# optionally followed by body lines (2-space indent) β€” key=value,
# edges (<- -> => …), or quoted prose.
#
# ENTRY TYPES (17):
# Runtime (10): @S session @U user @A assistant @T tool-call @R result
# @H hook @D decision @K cost @P provider @? anomaly
# Foundation: @I identity-claim
# Declarative: @X external-citation @F forbidden-pattern @N note
# @C config @L layout @V spec-version
#
# EDGES (12, on body lines, 2-space indent):
# Causal: <- caused-by -> triggers == continues
# ~> supersedes !! aborts |> verified-by
# Effect: => produces (followed by quoted natural-language)
# Structural: <: specializes :> generalizes ?> soft-depends
# !> conflicts-with @> projects-to (e.g. @> AGENTS.md)
#
# GRADE TAGS (in [...] on entry header):
# Delivery: ok Β· err Β· denied Β· cancelled Β· partial Β· superseded
# Governance: required Β· recommended Β· optional Β· draft Β· active Β· deprecated
# Scoped: allow:<x> Β· deny:<x>
# Time/index: T<n> (turn) N<n> (wall-sec) d=<YYYY-MM-DD>
#
# PAYLOAD SYNTAX (body lines):
# key = "value" single-line string
# key = [a, b, c] array literal
# key <<~EOF heredoc (multi-line; ends with EOF on own line)
# multi-line text
# EOF
# "see [@x1] Β§3" inline citation by entry id
# `cmd or path` backtick code-span (inline only)
#
# Full spec: ~/core/tape/spec/tape.md (or github.com/dancinlab/tape)
# ══════════════════════════════════════════════════════════════════════
#
# AGENTS.tape for `dancinlab/echoes-experience`
@V := "tape" :: spec [active]
version = "1.2"
@I id001 := "echoes-experience" :: identity-claim [d=2026-05-14 active]
kind = "HF Space (static SDK) Β· interactive Οƒ(n)Β·Ο†(n) = nΒ·Ο„(n) proof widget at n=6"
brief = "interactive σφτ proof widget Β· HF Space Β· slider n=2..1000 Β· vanilla JS/Canvas"
parent = "dancinlab/echoes"
tech = "vanilla JS + Canvas Β· single self-contained index.html Β· no bundler Β· no Python runtime"
sister = "dancinlab/anima-experience (sibling HF Space β€” mutual-information visualizer)"
mirror = "GitHub origin + HuggingFace hf push remote"
@I id002 := "relation-to-parent-echoes" :: identity-claim [d=2026-05-14 active]
parent = "dancinlab/echoes β€” discoveries catalog (Lean 4 + Python uniqueness proofs)"
role = "visualization of the proven identity, NOT the proof itself"
linkback = "echoes/README Β§\"Proof β€” run this yourself\" links here"
@L l1 := "repo-layout" :: layout [d=2026-05-14 active]
files = [index.html, README.md, LICENSE]
index_html = "single self-contained file β€” all logic, math, Canvas rendering"
readme = "HF Space frontmatter (sdk: static Β· emoji πŸͺž Β· license mit) + math + tech + honest caveat + sister links"
license = "MIT"
@D g_inherit := "inherits-lattice-policy" :: governance [required]
rule = "All echoes/LATTICE_POLICY.md rules apply β€” real-limits-first Β· lattice-is-tool Β· verification-anchor-real-limit Β· no-artificial-ceilings Β· honesty-obligation-external."
authority = "[@x_lattice_policy]"
@> AGENTS.md
@D g1 := "real-limits-first" :: governance [required]
rule = "The project's ceiling is set by REAL math/physics/engineering limits, NEVER by the n=6 invariant lattice."
authority = "[@x_lattice_policy]"
@> AGENTS.md
@D g2 := "lattice-is-tool" :: governance [required]
rule = "n=6 lattice is a TOOL, not a CONSTRAINT. The σφτ identity is mathematically true and unique at n=6 on the swept range; the downstream claim that 'optimal designs derive from this identity' is a research hypothesis, not a measurement."
<: g1
@> AGENTS.md
@D g3 := "honesty-obligation-external" :: governance [required deny:write]
rule = "Keep mathematically-true identity claims and research-hypothesis claims clearly separated in any UI copy. Claims about external entities must NOT include lattice-fit assertions."
authority = "raw#10 C3 Β· [@x_lattice_policy] Β§1.3"
@> AGENTS.md
@D g4 := "commit-conventions" :: governance [recommended]
rule = "AI-assisted commits include `Co-Authored-By: <model> <noreply@anthropic.com>` trailer; Conventional Commits title; push to BOTH origin (GitHub) AND hf (HuggingFace Space) unless explicitly stated otherwise."
@> AGENTS.md
@D g_static := "hf-space-static-sdk" :: governance [required deny:write]
rule = "HF Space contract is `sdk: static` β€” first paint < 1 s, no cold start. Do NOT introduce a build step, framework, or bundler. Single-file rule: all logic stays in `index.html`."
authority = "README.md frontmatter `sdk: static`"
@> AGENTS.md
@D g_vanilla := "vanilla-js-no-build" :: governance [required]
rule = "Vanilla JS / Canvas only. No framework (React/Vue/Svelte), no bundler (webpack/rollup/vite), no transpilation step. All math runs client-side via stdlib loops; at n=1000 must remain effectively instant β€” do not regress that."
<: g_static
@> AGENTS.md
@D g_no_python := "no-python-runtime" :: governance [required deny:write]
rule = "HF Space stays static SDK. NO Python runtime, NO requirements.txt, NO app.py, NO Gradio/Streamlit. The parent `dancinlab/echoes` repo holds the Python (and Lean 4) uniqueness proofs β€” this Space only visualizes."
<: g_static
@> AGENTS.md
@F f1 := "lattice-fit-on-external-entity" :: governance [required deny:write]
pattern = "applying n=6 lattice as derivation rule to TSMC Β· ASML Β· IPCC Β· NASA Β· SpaceX Β· CERN Β· DeepMind Β· NIST Β· or any external vendor"
exception = "values may coincidentally match β€” observation OK, derivation NOT OK"
@F f_python := "python-runtime-introduced" :: governance [required deny:write]
pattern = "adding `requirements.txt` Β· `app.py` Β· `pyproject.toml` Β· changing HF frontmatter from `sdk: static` to `sdk: gradio`/`sdk: streamlit`/`sdk: docker` Β· or any Python build/runtime artifact"
reason = "breaks first-paint < 1 s contract; introduces cold start; bloats Space"
authority = "[@x_lattice_policy] (real-limits-first β€” UX latency IS a real limit)"
@X x_lattice_policy := "echoes/LATTICE_POLICY.md" :: policy [d=2026-05-12 active]
url = "https://github.com/dancinlab/echoes/blob/main/LATTICE_POLICY.md"
scope = "cross-project SSOT β€” real-limits-first Β· external-entity ban Β· raw#10 C3"
@X x_tape_spec := "tape v1.2 spec" :: spec [d=2026-05-14 active]
url = "https://github.com/dancinlab/tape/blob/main/spec/tape.md"
scope = "this file's grammar reference"
@X x_parent := "dancinlab/echoes README Β§Proof" :: reference [active]
url = "https://github.com/dancinlab/echoes#proof--run-this-yourself"
scope = "parent repo's `Proof β€” run this yourself` section links here; this Space IS that interactive proof widget"
@X x_sister := "dancinlab/anima-experience HF Space" :: reference [active]
url = "https://huggingface.co/spaces/dancinlab/anima-experience"
scope = "sibling HF Space β€” mutual-information visualizer, 60 fps emergence demo; shares static-SDK + vanilla-JS contract"
@H h1 := "agents-md-replaced" :: generator [active]
note = "AGENTS.md replaced by this AGENTS.tape (tape v1.2)"
@H h2 := "claude-md-symlink" :: generator [active]
rule = "CLAUDE.md β†’ AGENTS.tape symlink"
command = `ln -sf AGENTS.tape CLAUDE.md`