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
File renamed without changes.
File renamed without changes.
104 changes: 104 additions & 0 deletions .github/workflows/knowledge_board.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,104 @@
name: Knowledge Board

# Publishes the knowledge board β€” the management view of the Memory's papers
# and wikis (scripts/board.py, the Heart/Hands dashboard pattern):
# * the GitHub Pages page (one-tap πŸ“‹ work prompts for a phone),
# * badge.json (the shields endpoint the README badge reads),
# * the one-line README strip between the memory:begin/end markers.
#
# Contents-level only: titles and counts, never claim text. Nothing is
# committed β€” validate_structure.py bans .html and gates the root allowlist,
# so every surface is rendered fresh here.

on:
push:
branches: [main]
paths:
- "wiki/**"
- "bibliography/**"
- "reading-queue.md"
- "index.md"
- "scripts/board.py"
schedule:
- cron: "45 5 * * 1"
workflow_dispatch:

# contents: write β†’ the README strip self-commit; pages/id-token β†’ publish.
permissions:
contents: write
pages: write
id-token: write

concurrency:
group: knowledge-board-pages
cancel-in-progress: false

jobs:
board:
name: Render + publish the knowledge board
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
steps:
- uses: actions/checkout@v4

- uses: actions/setup-python@v5
with:
python-version: "3.12"

- name: Render every surface (local parse, no network)
run: |
mkdir -p _site
python scripts/board.py --html > _site/index.html
python scripts/board.py --badge > _site/badge.json
python scripts/board.py --md > board.md
python scripts/board.py --md-brief > readme_strip.md

- name: Write the board to the job step summary
run: cat board.md >> "$GITHUB_STEP_SUMMARY"

- name: Update the README strip (own repo only, main only)
if: github.ref == 'refs/heads/main'
run: |
python - <<'PY'
import pathlib, re
readme = pathlib.Path("README.md")
text = readme.read_text()
strip = pathlib.Path("readme_strip.md").read_text().strip()
begin, end = "<!-- memory:begin -->", "<!-- memory:end -->"
block = f"{begin}\n{strip}\n{end}"
if begin in text and end in text:
text = re.sub(re.escape(begin) + r".*?" + re.escape(end), block,
text, flags=re.DOTALL)
readme.write_text(text)
PY
if ! git diff --quiet README.md; then
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
git add README.md
git commit -m "docs(memory): auto-update knowledge-board strip [skip ci]"
for attempt in 1 2 3; do
if git push; then exit 0; fi
git pull --rebase origin main || exit 1
done
echo "::error::could not push the README strip after 3 attempts"
exit 1
else
echo "README strip unchanged β€” nothing to commit."
fi

# The Pages site is created once out-of-band (gh api -X POST
# repos/<owner>/<repo>/pages -f build_type=workflow) β€” enablement here
# cannot create it with the default token (the Hands lesson).
- uses: actions/configure-pages@v5
if: github.ref == 'refs/heads/main'

- uses: actions/upload-pages-artifact@v3
if: github.ref == 'refs/heads/main'
with:
path: _site

- id: deployment
uses: actions/deploy-pages@v4
if: github.ref == 'refs/heads/main'
10 changes: 6 additions & 4 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -48,11 +48,13 @@ the allowlist is in `scripts/validate_structure.py`.
the organism did.
- **Workflow state, health, execution** β€” Mind / Heart / Build respectively.

## This repo is personal
## Scope: personal research material, out of scope for user-facing repos

PyAutoMemory contains personal research material. **Never reference or copy
PyAutoMemory content into public or user-facing repos** (libraries,
workspaces, tutorials, assistants).
PyAutoMemory holds personal research material. It is a public repo and its
wiki content is CC BY 4.0 (see LICENSE), but it is **out of scope for the
user-facing repos** (libraries, workspaces, tutorials, assistants): link to
it if you must, never inline or copy its content there β€” user-facing docs
must stand on their own without it.

<!-- repos_sync:history:begin -->
## Never rewrite history
Expand Down
5 changes: 4 additions & 1 deletion Makefile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
.PHONY: validate validate-literature-citations validate-structure test
.PHONY: validate validate-literature-citations validate-structure test board

validate: validate-literature-citations validate-structure

Expand All @@ -10,3 +10,6 @@ validate-structure:

test:
python -m pytest tests/ -q

board:
python scripts/board.py --md
34 changes: 27 additions & 7 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,12 +6,32 @@

[![PyAutoScientist GitHub](https://img.shields.io/badge/%F0%9F%A7%AE%20PyAutoScientist-GitHub-181717?style=flat-square)](https://github.com/PyAutoLabs/PyAutoScientist) [![PyAutoScientist ReadTheDocs](https://img.shields.io/badge/%F0%9F%93%96%20PyAutoScientist-ReadTheDocs-8CA1AF?style=flat-square)](https://pyautoscientist.readthedocs.io)

The long-term memory of the PyAuto organism: what it has learned, distilled
into cross-linked LLM wikis β€” literature summaries, scientific concepts, and
the citation metadata to verify them. Source PDFs live off-repo; what's here
is the durable knowledge. Start at [`index.md`](index.md).
[![knowledge](https://img.shields.io/endpoint?url=https://pyautolabs.github.io/PyAutoMemory/badge.json)](https://pyautolabs.github.io/PyAutoMemory/)

The sub-wikis (self-contained, shared schema):
**PyAutoMemory is the Memory of the PyAutoScientist** β€” the long-term memory
of the organism: what it has learned, distilled into cross-linked LLM wikis β€”
literature summaries, scientific concepts, and the citation metadata to
verify them. Memory holds *what the science says*; what the organism *did*
lives in the Mind. Source PDFs live off-repo; what's here is the durable
knowledge. Start at [`index.md`](index.md).

See the **[PyAutoMemory Knowledge Board](https://pyautolabs.github.io/PyAutoMemory/)**
(mobile phone dashboard) for managing all of it from one page: the reading
queue, the paper sections still needing a canonical citation key, and each
sub-wiki's maturity β€” every work queue carrying a one-tap πŸ“‹ button that
copies a paste-ready Claude prompt (file the next paper, resolve keys,
upgrade a stub, or `/memory <domain>` to recall what's known).

## Current contents

<!-- The line below is auto-updated by .github/workflows/knowledge_board.yml (everything -->
<!-- between the memory:begin/memory:end markers is replaced with the rendered strip). -->
<!-- memory:begin -->
<!-- memory:end -->

## The sub-wikis

Self-contained, shared schema:

| Wiki | Covers |
|------|--------|
Expand All @@ -24,8 +44,8 @@ The sub-wikis (self-contained, shared schema):
[`bibliography/`](bibliography/README.md) holds the canonical BibTeX
metadata every wiki cites against; [`reading-queue.md`](reading-queue.md)
is what's waiting to be read and filed. New knowledge updates the metadata
and the claim support together, then passes
`make validate`.
and the claim support together, then passes `make validate` (CI-enforced on
every push).

The wiki schema is defined in
[`wiki/CLAUDE.md`](wiki/CLAUDE.md) and inherited by every
Expand Down
12 changes: 3 additions & 9 deletions bibliography/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,9 @@ repository. Wiki source entries explain which claims papers support; the BibTeX
citation metadata and canonical keys. Keep PDFs, local paths, abstracts, and long paper
summaries out of both layers.

> Renamed from `pyautopaper.bib` (when this repo was PyAutoPaper); the back-compat
> `pyautopaper.bib` symlink was retired in 2026-07 once nothing referenced it.

The initial canonical file prioritised `library.bib`. Entries with new keys from the other
tracked legacy `.bib` files were added, but conflicting records never replaced the
`library.bib` entry. The legacy root-level `.bib` files were deleted in 2026-07 after a
key-level audit confirmed every unique key already existed here (they remain in git
history). All canonical metadata lives in this folder; loose `.bib` files must not be
added elsewhere in the repo.
All canonical metadata lives in this folder; loose `.bib` files must not be
added elsewhere in the repo. (The file was consolidated from a legacy
personal library in 2026-07 β€” the merge audit is in git history.)

## Adding a paper

Expand Down
29 changes: 9 additions & 20 deletions index.md
Original file line number Diff line number Diff line change
Expand Up @@ -50,23 +50,12 @@ The sub-wikis explain which claims papers support. Canonical BibTeX metadata,
key aliases, downstream-project resolution rules, and validation live in
[`bibliography/`](bibliography/README.md).

## Status (2026-05-22)

- Initial lensing-wiki build: 193 papers from Strong_Lens/,
Substructure/, StrongLensCluster/, Dark_Matter_Detection/,
DarkMatterModels/.
- Sibling sub-wiki build (this commit): ~422 additional papers from
SMBHs/, CTI/, Euclid/, MassiveEllPaper/, Ellipticals/,
Bulge_Disk_Decomp/, LightProFFits/, IFUs/, Manga/, COSMOS/,
StellarHalos/, High_Redshift_galaxies/, Dark_Matter_Geometry/,
Stats/, GaussianLinearModels/, PPLs/, Deep Learning/, Software/,
Simulation/, PyAutoLens/, uvplane/, FRBLenses/, WeakLensing/,
WeakLensingHaloShape/, Clusters/, LSS/, Lyman_Alpha_Forest/,
SpiralsMorph/, AndrewSuggests/, UnRead/, Summarys/,
Collaborations/, GWB/, Medical/, plus root-level singletons.
- PDFs deleted from the repo on the same day (backed up externally);
`File:` lines in stubs are archival relative paths.

Most legacy per-paper entries remain filename-inferred stubs. Upgrade them to
compact, claim-oriented `drafted` entries only after verifying the paper, and
log the change in the relevant sub-wiki.
## Provenance

The wikis were seeded in 2026-05 from a ~615-paper personal PDF library
(the PDFs themselves were deleted from the repo the same day, backed up
externally). Most legacy per-paper entries remain filename-inferred stubs:
upgrade them to compact, claim-oriented `drafted` entries only after
verifying the paper, and log the change in the relevant sub-wiki. The live
counts β€” pages, maturity, unresolved citation keys, reading queue β€” are on
the [knowledge board](https://pyautolabs.github.io/PyAutoMemory/).
Loading
Loading