docs: add quicklisp setup and no-.lisp convention to AGENTS.md

Quicklisp local-projects must be symlinked to memex projects/ to
prevent stale copies. Projects contain only .org files — .lisp is
generated by tangling.
This commit is contained in:
2026-05-13 14:26:44 -04:00
parent 91dc0242be
commit 191456cd7e

View File

@@ -12,7 +12,16 @@ When delegating work to subagents, follow this iteration loop:
error", "The README doesn't explain the --package flag", etc. error", "The README doesn't explain the --package flag", etc.
4. **Iterate** — repeat steps 2-3 until zero issues remain. Do not accept 4. **Iterate** — repeat steps 2-3 until zero issues remain. Do not accept
work that still has bugs, documentation gaps, or untested edge cases work that still has bugs, documentation gaps, or untested edge cases
5. **Accept** — only when you cannot find any more issues 5. **Accept** — only when you cannot find any more issues. **DONE means:**
- All unit tests pass (`(fiveam:run-all-tests)` or equivalent)
- Integration tests pass (if applicable)
- The project runs and the changed feature works end-to-end (start the runtime,
exercise the feature, verify output)
- No regressions introduced (pre-existing tests still pass, unchanged features
still work)
- `check-parens` reports zero issues on modified org files
- If the project has a runnable entry point (daemon, TUI, demo), verify it
starts and the change is visible
Key principles: Key principles:
- The subagent implements, the architect reviews. Do not switch roles. - The subagent implements, the architect reviews. Do not switch roles.
@@ -187,6 +196,24 @@ When sending code to the REPL, use the correct `(in-package ...)` form first.
| `:cl-tty.slot` | Slot/plugin system | | `:cl-tty.slot` | Slot/plugin system |
| `:cl-tty.markdown` | Markdown rendering | | `:cl-tty.markdown` | Markdown rendering |
## Setup
Before working on CL projects in this monorepo:
- **Quicklisp local-projects** — ensure `~/quicklisp/local-projects/` is a symlink
to `~/memex/projects/`. This eliminates stale copies and ensures cl-tty,
passepartout, and other projects are loaded from the same location being edited:
```
ln -sf ~/memex/projects/cl-tty ~/quicklisp/local-projects/cl-tty
```
- **No .lisp files** — projects contain only `.org` source files. `.lisp` files
are generated by tangling and are never edited directly. After cloning or
pulling, tangle all org files before loading:
```
cd projects/passepartout && for f in org/*.org; do projects/tangle-tool/tangle "$f"; done
```
## Commands ## Commands
Tangle a single file: Tangle a single file: