From 191456cd7e2594393117c2dcd92c3da75f6539e3 Mon Sep 17 00:00:00 2001 From: Amr Gharbeia Date: Wed, 13 May 2026 14:26:44 -0400 Subject: [PATCH] docs: add quicklisp setup and no-.lisp convention to AGENTS.md MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Quicklisp local-projects must be symlinked to memex projects/ to prevent stale copies. Projects contain only .org files — .lisp is generated by tangling. --- projects/AGENTS.md | 29 ++++++++++++++++++++++++++++- 1 file changed, 28 insertions(+), 1 deletion(-) diff --git a/projects/AGENTS.md b/projects/AGENTS.md index 1cb3568..be7d184 100644 --- a/projects/AGENTS.md +++ b/projects/AGENTS.md @@ -12,7 +12,16 @@ When delegating work to subagents, follow this iteration loop: error", "The README doesn't explain the --package flag", etc. 4. **Iterate** — repeat steps 2-3 until zero issues remain. Do not accept 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: - 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.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 Tangle a single file: