Handbook
Setup and submodules
setup.sh initializes nested submodules kitchensink (which includes forge-autodoc at kitchensink/forge-autodoc/) and blueprints, and runs lenses-startup.sh. On a standalone clone that affects this repo; when forge-lenses…
Standalone clone
git clone https://github.com/autowww/forge-lenses.git
cd forge-lenses
./scripts/setup.sh
setup.sh initializes nested submodules kitchensink (which includes forge-autodoc at kitchensink/forge-autodoc/) and blueprints, and runs lenses-startup.sh. On a standalone clone that affects this repo; when forge-lenses is a submodule, startup elevates to the superproject and creates .lenses-* on the host repo root (same as running ./forge-lenses/scripts/lenses-startup.sh from the host).
As a submodule (forge-lenses/)
From your product repository:
git submodule add https://github.com/autowww/forge-lenses.git forge-lenses
git submodule update --init --recursive
./forge-lenses/scripts/lenses-startup.sh
Then:
cd forge-lenses && ./scripts/setup.sh
Host repo folders (parent of forge-lenses/)
After lenses-startup.sh (from the host tree or from inside forge-lenses/; submodule checkouts are redirected to the superproject):
.lenses-local/— gitignored; local-only (sessions cache, Stickerboardefo registrysticker-board-registry.json, per-board files understicker-boards/<id>.*(and legacysticker-board.jsonuntil migrated), etc.)..lenses-repo/<github-login>/— committed (starts with.gitkeep; optionalREADME.txtadded only if missing). This is the commit-friendly “shared with the repo” area (some people think of it as a lenses-shared slot; the directory name is.lenses-repo/). GitHub login fromgh api user, elsegit remote get-url originon the resolved git repo (github.com/owner/...).
Multi-repo workspace parent (sibling repos)
If forge-lenses is a checkout next to other repos (not a submodule of a meta-repo), set LENSES_WORKSPACE_ROOT to that parent directory so .lenses-local/ and .lenses-repo/ are created there (same variable the server uses for scanning). Example:
export LENSES_WORKSPACE_ROOT=/path/to/workspace
cd /path/to/workspace/forge-lenses && ./scripts/setup.sh
Dependencies
- Python 3
markdown(pip) — forgenerator/build-lenses-docs.pyand forge-autodocPyYAML(pip) — for./build-fa-tutorials.sh(forge-autodoc config build)
Running
cd forge-lenses
./scripts/run-lenses.sh
Optional:
export LENSES_WORKSPACE_ROOT=/path/to/workspace
./scripts/run-lenses.sh --port 8080
Tutorial handbook (forge-autodoc)
From the forge-lenses repo root (after pip install markdown PyYAML):
./build-fa-tutorials.sh
Output: lenses/tutorials/ (gitignored), then synced to repo-root tutorial/ for the dashboard Tutorial link. Open /local-site/<repo>/tutorial/index.html on the lenses host (same origin as the dashboard).
Security
The server reads the workspace only under the configured workspace root. Static reference docs are served only from lenses-docs/ inside forge-lenses (/docs/). The tutorial tree is served from tutorial/ at each workspace child’s repo root when synced.