Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
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
4 changes: 3 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ Sequenced bridge: convert the computational finding + your credential network (G

<h2 id="execution">✅ Roadmap Execution</h2>

**15/26 done (58%).** Each execution is a checkbox with a before→after eval; a box only ticks with a real result (`done` requires a non-pending before AND after — no evidence ⇒ not done, gated in CI).
**16/27 done (59%).** Each execution is a checkbox with a before→after eval; a box only ticks with a real result (`done` requires a non-pending before AND after — no evidence ⇒ not done, gated in CI).

- [x] **E1** (P1 · Foundation) — Stand up the AI-native loop (repo + self-audit + gated `make check`)
- [x] **E2** (P1 · Foundation) — Map the field into a verified knowledge base
Expand Down Expand Up @@ -185,6 +185,7 @@ Sequenced bridge: convert the computational finding + your credential network (G
- [x] **E24** (P1 · Foundation) — Hub Phase-2: JIT deep artifacts for one repo (pyaging) — knowledge graph + gated skill, SHA-stamped
- [x] **E25** (P1 · Foundation) — Make /longevity-loop an invocable skill that uses every hub toolset (backbone + progressive disclosure)
- [x] **E26** (P1 · Foundation) — Fan the hub out to Biolearn (North-Star toolset) — auto-wires into /longevity-loop
- [x] **E27** (P1 · Foundation) — External validation — register the loop's skills in HKUDS/OpenSpace, run 3 real tasks, read the quality records

### Eval reports — before → after

Expand Down Expand Up @@ -216,6 +217,7 @@ Sequenced bridge: convert the computational finding + your credential network (G
| ✅ E24 | a real, grounded, provenance-stamped KG + skill generated from a cited repo, with a freshness gate | hub had the recipe layer only; no deep artifact proving the JIT layer works | hub/pyaging/ — knowledge-graph.json (20 nodes/edges) + compute-aging-clocks SKILL.md + manifest (SHA c2b3000e3c2c); scripts/hub_gen.py gates integrity (make check) + checks live staleness (FRESH); grounded in pyaging's real API |
| ✅ E25 | an invocable /longevity-loop skill that reaches all per-repo toolsets without bloat | hub toolsets existed (hub/*/SKILL.md) but nothing exposed them through one invocable skill | SKILL.md generated by scripts/skill_gen.py — backbone = the loop's own tools; progressive disclosure = hub toolsets (auto-discovered from hub/, 1 today: compute-aging-clocks) + a JIT recipe; drift-gated in make check; installed at ~/.claude/skills/longevity-loop |
| ✅ E26 | the North-Star repo has a grounded KG + gated skill, auto-disclosed by /longevity-loop | hub had 1 exemplar (pyaging); Biolearn (the leaderboard/loader for E6/E7) had no toolset | hub/biolearn/ — knowledge-graph.json (19 nodes/edges) + biolearn-leaderboard SKILL.md (real API, ties to E6/E7) + manifest (SHA 0d714f5a0c0a, FRESH); skill_gen auto-discovered it → SKILL.md now discloses 2 toolsets, no hand-editing |
| ✅ E27 | the loop's skills register into a third-party quality-first hub and are selected/applied on real tasks (evidence, not vibes) | openspace-trial/ had a runbook + inventory but no results; the loop's skills had never been exercised outside this repo; the runbook's install step (pip install -e .) was unverified | source-installed OpenSpace v2.0.0 (py3.12, non-editable — editable install proven broken); 3 skills registered (trusted); 3 tasks all SUCCESS/completed; biolearn-leaderboard + longevity-loop judged 'skill applied' (2/3); evolution engine correctly NOOP (plans give no executed evidence); sandbox denied bash/write (blast radius contained). Verdict: trial-more |

---

Expand Down
9 changes: 9 additions & 0 deletions data/executions.yml
Original file line number Diff line number Diff line change
Expand Up @@ -195,3 +195,12 @@
before: "hub had 1 exemplar (pyaging); Biolearn (the leaderboard/loader for E6/E7) had no toolset"
after: "hub/biolearn/ — knowledge-graph.json (19 nodes/edges) + biolearn-leaderboard SKILL.md (real API, ties to E6/E7) + manifest (SHA 0d714f5a0c0a, FRESH); skill_gen auto-discovered it → SKILL.md now discloses 2 toolsets, no hand-editing"
proof: "hub/biolearn/* · SKILL.md (2 toolsets) · make check"
- id: E27
phase: "P1 · Foundation"
item: "External validation — register the loop's skills in HKUDS/OpenSpace, run 3 real tasks, read the quality records"
done: true
eval:
metric: "the loop's skills register into a third-party quality-first hub and are selected/applied on real tasks (evidence, not vibes)"
before: "openspace-trial/ had a runbook + inventory but no results; the loop's skills had never been exercised outside this repo; the runbook's install step (pip install -e .) was unverified"
after: "source-installed OpenSpace v2.0.0 (py3.12, non-editable — editable install proven broken); 3 skills registered (trusted); 3 tasks all SUCCESS/completed; biolearn-leaderboard + longevity-loop judged 'skill applied' (2/3); evolution engine correctly NOOP (plans give no executed evidence); sandbox denied bash/write (blast radius contained). Verdict: trial-more"
proof: "openspace-trial/RESULTS.md · RUNBOOK.md (verified install) · evidence.db + openspace.db quality records"
55 changes: 55 additions & 0 deletions openspace-trial/RESULTS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,55 @@
# OpenSpace trial — results (verified 2026-07-20)

Source-installed **HKUDS/OpenSpace** v2.0.0 (MIT) in a Python 3.12.13 venv, registered
longevity-loop's skills, ran 3 real tasks headless (`--no-ui --query`, model
`anthropic/claude-sonnet-4-5` via litellm), and read the quality records OpenSpace emits into
`.openspace/evidence.db` + `.openspace/openspace.db`. This is evidence, not vibes — the numbers below
are dumped straight from those DBs.

## Setup outcome
- **Install:** `pip install .` (non-editable). Editable install was broken — see RUNBOOK.md gotcha.
- **Registered skills** (→ `.openspace/skills/<name>/SKILL.md`, all imported `trust_state=trusted`):
`longevity-loop`, `compute-aging-clocks`, `biolearn-leaderboard`.
- **Scope note (honest):** OpenSpace also auto-scanned `~/.claude/skills` and imported the whole
global set (**69** `skill_records` total — 10xgoal, graphify, etc.), not just the 3 project skills.
Worth knowing for scope/privacy; only the 3 project skills were exercised.

## The 3 tasks — quality records
| Task | Skill targeted | Status | Skill applied? (OpenSpace judgment) |
|---|---|---|---|
| 1 · pyaging clock-panel plan | compute-aging-clocks | ✅ SUCCESS (`completed=True`, 3 iters) | **not formally judged** (`skills_judged=0`) — note: *"provided a concrete plan with exact pyaging API calls"*, attributed to model knowledge |
| 2 · Biolearn challenge-data + submission | biolearn-leaderboard | ✅ SUCCESS (2 iters) | **YES** — *"the skill was loaded and its instructions were directly used to construct the plan"*; trust observation = success |
| 3 · loop target + low-hanging fruit | longevity-loop | ✅ SUCCESS (2 iters) | **YES** — *"invoked successfully; the agent extracted the loop's target"*; trust observation = success |

**Per-skill counters** (`skill_records`): biolearn-leaderboard applied 1 / completed 1 / fallbacks 0 ·
longevity-loop applied 1 / completed 1 / fallbacks 0 · compute-aging-clocks 0/0/0 (registered, not
formally applied in these runs).

**Tool reliability** (`tool_quality_records`): `Skill` 2/5 successful calls · `bash` 0/1 · `write`
0/2 · `ls` 1/1.

**Evolution engine:** all analyses → **NOOP** (no skill mutation admitted). Recorded reasons:
*"procedure refs lack execution"*, *"no evolution suggestion"* — the plan/summarize tasks produced no
executed evidence to justify evolving a skill. Honest outcome, not a failure.

## Two findings that matter
1. **OpenSpace's sandbox denied `bash`/`write` by default** (`permission_denied`). Good for blast
radius — the agent could not execute code or write files — but it's *why* the pyaging task
produced a plan rather than a computed clock panel. To run execution-heavy tasks, grant those
tool permissions explicitly.
2. **Skills register cleanly into a third-party quality-first hub and are selected + applied on
relevant tasks** — 2 of 3 with an explicit "skill applied" judgment, all 3 completed. Same
SKILL.md format as the longevity-loop hub, so no adaptation was needed.

## Verdict (trial protocol §Success criteria)
- ✅ Quality records for 3 real tasks (evidence in the two DBs).
- ✅ Skills correctly selected/applied (biolearn + longevity-loop judged applied).
- ⚠️ No **validated evolution** — the engine correctly declined (plans give no executed evidence);
the criterion needs an execution-permitted task to be met.
- ⚠️ Tokens/latency not benchmarked vs a no-OpenSpace baseline this run.
- **Verdict: trial-more.** OpenSpace is a viable external validator of the loop's skills; the single
number that would decide *adopt* is a **validated, no-regression evolution on an
execution-permitted task** — not yet demonstrated.

_Scratch dirs (external, not committed): OpenSpace at `~/Documents/Projects/OpenSpace`; run dir at
`~/Documents/Projects/openspace-run/.openspace/{evidence,openspace}.db` + `logs/recordings/`._
15 changes: 11 additions & 4 deletions openspace-trial/RUNBOOK.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,11 +9,18 @@ regression/bloat/slowdown. Local-first; own-your-data.
```
git clone https://github.com/HKUDS/OpenSpace.git && cd OpenSpace
python3.12 -m venv .venv && . .venv/bin/activate # Python 3.12 (3.14 may lack dep wheels)
pip install -e .
openspace-mcp --help # verify the REAL package
pip install . # NON-editable — see the gotcha below
openspace --help # verify the REAL package (headless CLI)
```
Set `OPENSPACE_MODEL` / `OPENSPACE_LLM_*` to your provider (Anthropic key available). No cloud login
needed for the local-first run+evolve path (supply-chain: self-host, pin deps, read before run).
**⚠️ Do NOT use `pip install -e .` (editable) — verified broken 2026-07-20.** The PEP 660 editable
finder leaves `import openspace` as a namespace package (`__file__=None`) and the CLI dies with
`ModuleNotFoundError`. A plain non-editable `pip install .` (or `pip install --no-deps
--force-reinstall .`) maps the package correctly and the CLI works.

**⚠️ The default `--tui` / `--doctor` path needs a built Node TUI artifact that isn't shipped** —
run **headless** with `openspace --no-ui --query "<task>"`. Set `OPENSPACE_LLM_API_KEY` +
`OPENSPACE_MODEL` (litellm ids, e.g. `anthropic/claude-sonnet-4-5`). No cloud login needed for the
local-first run+evolve path (supply-chain: self-host, pin deps, read before run).

## Trial protocol (local-first)
1. Register this repo's skills (see `INVENTORY.md`) into OpenSpace.
Expand Down
Loading